use packages from github

This commit is contained in:
Dietmar Maurer 2015-04-12 17:19:08 +02:00
parent cc8c8584d9
commit e37bd2ebdc
12 changed files with 302 additions and 22 deletions

View File

@ -8,22 +8,22 @@ SPLPKGREL=1~wheezy
ZFSPKGVER=${ZFSVER}-${ZFSPKGREL} ZFSPKGVER=${ZFSVER}-${ZFSPKGREL}
SPLPKGVER=${ZFSVER}-${SPLPKGREL} SPLPKGVER=${ZFSVER}-${SPLPKGREL}
SPLDIR=spl-spl-${ZFSVER} SPLDIR=pkg-spl
SPLSRC=spl-${ZFSVER}.tar.gz SPLSRC=pkg-spl.tar.gz
ZFSDIR=zfs-zfs-${ZFSVER} ZFSDIR=pkg-zfs
ZFSSRC=zfs-${ZFSVER}.tar.gz ZFSSRC=pkg-zfs.tar.gz
SPL_DEBS= \ SPL_DEBS= \
spl_${SPLPKGVER}_amd64.deb spl_${SPLPKGVER}_amd64.deb
ZFS_DEBS= \ ZFS_DEBS= \
libnvpair1_${ZFSPKGVER}_amd64.deb \ libnvpair1_${ZFSPKGVER}_amd64.deb \
libuutil1_${ZFSPKGVER}_amd64.deb \ libuutil1_${ZFSPKGVER}_amd64.deb \
libzfs2_${ZFSPKGVER}_amd64.deb \ libzfs2_${ZFSPKGVER}_amd64.deb \
libzfs-dev_${ZFSPKGVER}_amd64.deb \ libzfs-dev_${ZFSPKGVER}_amd64.deb \
libzpool2_${ZFSPKGVER}_amd64.deb \ libzpool2_${ZFSPKGVER}_amd64.deb \
zfs-doc_${ZFSPKGVER}_amd64.deb \ zfs-dbg_${ZFSPKGVER}_amd64.deb \
zfs-initramfs_${ZFSPKGVER}_amd64.deb \ zfs-initramfs_${ZFSPKGVER}_amd64.deb \
zfsutils_${ZFSPKGVER}_amd64.deb zfsutils_${ZFSPKGVER}_amd64.deb
DEBS=${SPL_DEBS} ${ZFS_DEBS} DEBS=${SPL_DEBS} ${ZFS_DEBS}
@ -38,26 +38,32 @@ dinstall: ${DEBS}
spl ${SPL_DEBS}: ${SPLSRC} spl ${SPL_DEBS}: ${SPLSRC}
rm -rf ${SPLDIR} rm -rf ${SPLDIR}
tar xf ${SPLSRC} tar xf ${SPLSRC}
cp -a spl-debian-pve ${SPLDIR}/debian cd ${SPLDIR}; ln -s ../spl-patches patches
cd ${SPLDIR}; dpkg-buildpackage -b -uc -us cd ${SPLDIR}; quilt push -a
cd ${SPLDIR}; rm -rf .pc ./patches
cd ${SPLDIR}; ./debian/rules override_dh_prep-base-deb-files
cd ${SPLDIR}; dpkg-buildpackage -b -uc -us
.PHONY: zfs .PHONY: zfs
zfs ${ZFS_DEBS}: ${ZFSSRC} zfs ${ZFS_DEBS}: ${ZFSSRC}
rm -rf ${ZFSDIR} rm -rf ${ZFSDIR}
tar xf ${ZFSSRC} tar xf ${ZFSSRC}
cp -a zfs-debian-pve ${ZFSDIR}/debian cd ${ZFSDIR}; ln -s ../zfs-patches patches
cd ${ZFSDIR}; quilt push -a
cd ${ZFSDIR}; rm -rf .pc ./patches
cd ${ZFSDIR}; ./debian/rules override_dh_prep-base-deb-files
cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
.PHONY: download .PHONY: download
download: download:
#git clone https://github.com/zfsonlinux/pkg-spl.git rm -rf pkg-spl pkg-zfs ${SPLSRC} ${ZFSSRC}
#git clone https://github.com/zfsonlinux/pkg-zfs.git git clone https://github.com/zfsonlinux/pkg-spl.git
##git checkout master/ubuntu/precise git clone https://github.com/zfsonlinux/pkg-zfs.git
##git checkout master/debian/wheezy # list tags with: git tag --list 'master/*'
rm -f spl-*.tar.gz cd pkg-spl; git checkout master/debian/wheezy/0.6.4-1-wheezy
rm -f zfs-*.tar.gz cd pkg-zfs; git checkout master/debian/wheezy/0.6.4-1-2-wheezy
wget https://github.com/zfsonlinux/spl/archive/${SPLSRC} tar czf ${SPLSRC} pkg-spl
wget https://github.com/zfsonlinux/zfs/archive/${ZFSSRC} tar czf ${ZFSSRC} pkg-zfs
.PHONY: clean .PHONY: clean
clean: clean:
@ -85,6 +91,7 @@ upload: ${DEBS}
rm -f /pve/${RELEASE}/extra/zfs_*.deb rm -f /pve/${RELEASE}/extra/zfs_*.deb
rm -f /pve/${RELEASE}/extra/zfs-dkms_*.deb rm -f /pve/${RELEASE}/extra/zfs-dkms_*.deb
rm -f /pve/${RELEASE}/extra/zfs-doc_*.deb rm -f /pve/${RELEASE}/extra/zfs-doc_*.deb
rm -f /pve/${RELEASE}/extra/zfs-dbg_*.deb
rm -f /pve/${RELEASE}/extra/zfs-initramfs_*.deb rm -f /pve/${RELEASE}/extra/zfs-initramfs_*.deb
rm -f /pve/${RELEASE}/extra/zfsutils_*.deb rm -f /pve/${RELEASE}/extra/zfsutils_*.deb
rm -f /pve/${RELEASE}/extra/zfsutils-dbg_*.deb rm -f /pve/${RELEASE}/extra/zfsutils-dbg_*.deb

4
README
View File

@ -5,8 +5,8 @@ This is based of code from:
https://github.com/zfsonlinux/pkg-spl.git https://github.com/zfsonlinux/pkg-spl.git
https://github.com/zfsonlinux/pkg-zfs.git https://github.com/zfsonlinux/pkg-zfs.git
We merged updates from the precice branch into the older wheezy We removed the dkms/modules related code, because we ship the
branch. modules with the kernel.
For licensing questions, see: For licensing questions, see:

BIN
pkg-spl.tar.gz Normal file

Binary file not shown.

BIN
pkg-zfs.tar.gz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,14 @@
Index: new-spl/debian/changelog
===================================================================
--- new-spl.orig/debian/changelog 2015-04-12 14:06:48.000000000 +0200
+++ new-spl/debian/changelog 2015-04-12 17:09:48.000000000 +0200
@@ -1,3 +1,9 @@
+spl-linux (0.6.4-1~wheezy) unstable; urgency=low
+
+ * recompile for Proxmox VE, keep Proxmox VE versioning schema
+
+ -- Proxmox Support Team <support@proxmox.com> Sun, 12 Apr 2015 17:09:48 +0200
+
spl-linux (0.6.4-1-wheezy) wheezy; urgency=low
* New upstream release.

102
spl-patches/fix-control Normal file
View File

@ -0,0 +1,102 @@
Index: new-spl/debian/rules
===================================================================
--- new-spl.orig/debian/rules 2015-04-12 14:06:48.000000000 +0200
+++ new-spl/debian/rules 2015-04-12 16:51:10.000000000 +0200
@@ -24,15 +24,12 @@
KIMGVER=$(shell dpkg -s linux-image-$(KVERS)-$(DEB_HOST_ARCH) | grep ^Version | sed 's/.*: //')
%:
- dh $@ --with dkms
+ dh $@
override_dh_prep-base-deb-files:
- sed -e 's/##SHLIB_MAJOR##/$(SHLIB_MAJOR)/g ; s/##MODULES_BUILD_DEPENDS##/linux-headers-$(KVERS)-common, linux-headers-$(KVERS)-$(DEB_HOST_ARCH)/g' \
+ sed -e 's/##SHLIB_MAJOR##/$(SHLIB_MAJOR)/g ; s/##MODULES_BUILD_DEPENDS##/pve-headers-$(KVERS)/g' \
< debian/control.in > debian/control
- sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g ; s/_IMGVER_/$(KIMGVER)/g' \
- < debian/control.modules.in >> debian/control
-
for templ in $(wildcard $(CURDIR)/debian/*_KVERS_*.in); do \
sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g' \
< $$templ > `echo $$templ | sed -e 's/_KVERS_/$(KVERS)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g ; s/\.in$$//'` ; \
@@ -52,8 +49,7 @@
@# Build the userland and the modules
dh_auto_configure -- \
--prefix=/usr \
- --with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ)
+ --with-config=user
override_dh_auto_test:
# scripts/check.sh tries insmod and rmmod, so it cannot
@@ -67,36 +63,6 @@
@# This creates the $(CURDIR)/$(NAME)-$(VERSION)/ tree.
$(MAKE) distdir
- # Install the DKMS source.
- @# We only want the files needed to build the modules
- mkdir -p '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'
- touch '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/.nogitrelease'
- rm -Rf '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/include'
- $(foreach file,$(DKMSFILES),mv '$(CURDIR)/$(NAME)-$(VERSION)/$(file)' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)' || exit 1;)
- @# Hellish awk line:
- @# * Deletes from configure.ac the parts not needed for building the kernel module
- @# * It deletes from inside AC_CONFIG_FILES([]) everything except:
- @# (Makefile$|include/|module/|*.release$)
- @# * Takes care of spaces and tabs
- awk '/^AC_CONFIG_FILES\(\[/,/^\]\)/ { if ($$0 !~ /^(AC_CONFIG_FILES\(\[([ \t]+)?$$|\]\)([ \t]+)?$$|([ \t]+)?(include\/|module\/|Makefile([ \t]+)?$$|spl\.release([ \t]+)?$$))/){next} } {print}' \
- '$(CURDIR)/$(NAME)-$(VERSION)/configure.ac' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/configure.ac'
- @# Set "SUBDIRS = module include" for CONFIG_KERNEL and remove SUBDIRS for all other configs.
- sed '1,/CONFIG_KERNEL/s/SUBDIRS.*=.*//g;s/SUBDIRS.*=.*/SUBDIRS = module include/g;' \
- '$(CURDIR)/$(NAME)-$(VERSION)/Makefile.am' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Sanity test
- grep -q 'SUBDIRS = module include' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Run autogen on the stripped source tree
- cd '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'; ./autogen.sh
- rm -fr '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/autom4te.cache'
-
- @# This shunt allows DKMS to install the Module.symvers and spl_config.h
- @# files to the ${dkms_tree} area through the POST_INSTALL directive.
- echo '#!/bin/sh' >'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- echo 'cp "$$@"' >>'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- chmod 755 '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
-
- find '$(CURDIR)/debian/tmp' -name '*~' | xargs rm
-
override_dh_dkms:
dh_dkms -V $(VERSION)
Index: new-spl/debian/control.in
===================================================================
--- new-spl.orig/debian/control.in 2015-04-12 14:06:48.000000000 +0200
+++ new-spl/debian/control.in 2015-04-12 16:11:39.000000000 +0200
@@ -18,28 +18,6 @@
Vcs-Git: git://anonscm.debian.org/pkg-zfsonlinux/spl.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/spl.git
-Package: spl-dkms
-Architecture: all
-Depends: linux-headers-amd64, libc6-dev, ${misc:Depends}, dkms (>> 2.1.1.2-5), lsb-release, file
-Recommends: spl (>= ${source:Upstream-Version})
-Provides: spl-modules
-Description: Solaris Porting Layer kernel modules for Linux
- The Solaris Porting Layer (SPL) is a Linux kernel module which provides
- many of the Solaris kernel APIs. This shim layer makes it possible to
- run Solaris kernel code in the Linux kernel with relatively minimal
- modification. The Solaris Porting LAyer Tests (SPLAT) is a Linux kernel
- module which provides a testing harness for the SPL module.
- .
- SPL can be particularly useful when you want to track upstream Illumos
- (or any other OpenSolaris fork) development closely and don't want the
- overhead of maintaining a large patch which converts Solaris primitives
- to Linux primitives.
- .
- This package contains the source code for the SPL and SPLAT Linux kernel
- modules, which can be used with DKMS, so that local kernel modules are
- automatically built and installed every time the kernel packages are
- upgraded.
-
Package: spl
Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}

2
spl-patches/series Normal file
View File

@ -0,0 +1,2 @@
fix-control
fix-changelog-patch

Binary file not shown.

View File

@ -0,0 +1,14 @@
Index: new-zfs/debian/changelog
===================================================================
--- new-zfs.orig/debian/changelog 2015-04-12 14:06:48.000000000 +0200
+++ new-zfs/debian/changelog 2015-04-12 17:07:09.000000000 +0200
@@ -1,3 +1,9 @@
+zfs-linux (0.6.4-1~wheezy) unstable; urgency=low
+
+ * recompile for Proxmox VE, keep Proxmox VE versioning schema
+
+ -- Proxmox Support Team <support@proxmox.com> Sun, 12 Apr 2015 17:06:15 +0200
+
zfs-linux (0.6.4-1-2-wheezy) wheezy; urgency=low
* Replace apparently broken nfs.c with one that works on my Primary.

View File

@ -0,0 +1,139 @@
Index: new-zfs/debian/control.in
===================================================================
--- new-zfs.orig/debian/control.in 2015-04-12 14:06:48.000000000 +0200
+++ new-zfs/debian/control.in 2015-04-12 17:24:36.000000000 +0200
@@ -88,36 +88,9 @@
.
This zpool library provides support for managing zpools.
-Package: zfs-dkms
-Architecture: all
-Pre-Depends: spl-dkms
-Depends: dkms (>> 2.1.1.2-5), lsb-release, ${misc:Depends}, file
-Recommends: zfsutils
-Replaces: lzfs, lzfs-dkms
-Provides: lustre-backend-fs, lzfs, lzfs-dkms, zfs-modules
-Conflicts: lzfs, lzfs-dkms
-Description: Native ZFS filesystem kernel modules for Linux
- The Z file system is a pooled filesystem designed for maximum data
- integrity, supporting data snapshots, multiple copies, and data
- checksums.
- .
- This DKMS package includes the SPA, DMU, ZVOL, and ZPL components of ZFS.
-
-Package: zfs-dracut
-Section: utils
-Architecture: linux-any
-Depends: dracut, zfs-modules | zfs-dkms, zfsutils, ${misc:Depends}
-Description: Native ZFS root filesystem capabilities for Linux
- The Z file system is a pooled filesystem designed for maximum data
- integrity, supporting data snapshots, multiple copies, and data
- checksums.
- .
- This package adds ZFS to the system initramfs with a hook
- for the dracut infrastructure.
-
Package: zfs-initramfs
Architecture: linux-any
-Depends: initramfs-tools, zfs-modules | zfs-dkms, zfsutils, ${misc:Depends}
+Depends: initramfs-tools, zfsutils, ${misc:Depends}
Description: Native ZFS root filesystem capabilities for Linux
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
@@ -130,7 +103,6 @@
Section: admin
Architecture: linux-any
Depends: initscripts, lsb-base, python, ${misc:Depends}, ${shlibs:Depends}
-Recommends: zfs-modules | zfs-dkms
Suggests: nfs-kernel-server, samba-common-bin (>= 3.0.23), zfs-initramfs
Conflicts: zfs, zfs-fuse
Replaces: zfs
Index: new-zfs/debian/rules
===================================================================
--- new-zfs.orig/debian/rules 2015-04-12 14:06:48.000000000 +0200
+++ new-zfs/debian/rules 2015-04-12 17:18:04.000000000 +0200
@@ -24,13 +24,11 @@
endif
ifndef SPL
-SPLSRC=/usr/src/spl-$(VERSION)
+SPLSRC=../pkg-spl
endif
CFG_OPTS=--without-selinux \
- --with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ) \
- --with-spl=$(SPLSRC)
+ --with-config=user
non_epoch_version=$(shell echo $(KVERS) | perl -pe 's/^\d+://')
PACKAGE=zfs
@@ -44,15 +42,9 @@
dh $@ --with dkms --parallel
override_dh_prep-base-deb-files:
- sed -e 's/##SHLIB_MAJOR##/$(SHLIB_MAJOR)/g ; s/##MODULES_BUILD_DEPENDS##/linux-headers-$(KVERS)-common, linux-headers-$(KVERS)-$(DEB_HOST_ARCH), spl-dkms/g' \
+ sed -e 's/##SHLIB_MAJOR##/$(SHLIB_MAJOR)/g ; s/##MODULES_BUILD_DEPENDS##/pve-headers-$(KVERS)/g' \
< debian/control.in > debian/control
- sed -e 's/##SHLIB_MAJOR##/$(SHLIB_MAJOR)/g' \
- < debian/control.udeb.in >> debian/control
-
- sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g ; s/_IMGVER_/$(KIMGVER)/g' \
- < debian/control.modules.in >> debian/control
-
for templ in $(wildcard $(CURDIR)/debian/*_SHLIB_MAJOR_*.in); do \
cat $$templ > `echo $$templ | sed -e 's/_SHLIB_MAJOR_/$(SHLIB_MAJOR)/g ; s/\.in$$//'`; \
done
@@ -89,42 +81,6 @@
@# Install the utilities.
$(MAKE) install DESTDIR='$(CURDIR)/debian/tmp'
- @# Get a bare copy of the source code for DKMS.
- @# This creates the $(CURDIR)/$(NAME)-$(VERSION)/ tree, which does not
- @# contain the userland sources. NB: Remove-userland-dist-rules.patch
- $(MAKE) distdir
-
- @# Install the DKMS source.
- @# We only want the files needed to build the modules
- mkdir -p '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'
- touch '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/.nogitrelease'
- cp '$(CURDIR)/autogen.sh' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/'
- ( for d in include module config; do \
- rm -Rf $(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/$$d; \
- done)
- $(foreach file,$(DKMSFILES),mv '$(CURDIR)/$(NAME)-$(VERSION)/$(file)' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)' || exit 1;)
- @# Hellish awk line:
- @# * Deletes from configure.ac the parts not needed for building the kernel module
- @# * It deletes from inside AC_CONFIG_FILES([]) everything except:
- @# (Makefile$|include/|module/|*.release$)
- @# * Takes care of spaces and tabs
- awk '/^AC_CONFIG_FILES\(\[/,/^\]\)/ { if ($$0 !~ /^(AC_CONFIG_FILES\(\[([ \t]+)?$$|\]\)([ \t]+)?$$|([ \t]+)?(include\/|module\/|Makefile([ \t]+)?$$|zfs\.release([ \t]+)?$$))/){next} } {print}' \
- '$(CURDIR)/$(NAME)-$(VERSION)/configure.ac' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/configure.ac'
- @# Set "SUBDIRS = module include" for CONFIG_KERNEL and remove SUBDIRS for all other configs.
- sed '1,/CONFIG_KERNEL/s/SUBDIRS.*=.*//g;s/SUBDIRS.*=.*/SUBDIRS = module include/g;' \
- '$(CURDIR)/$(NAME)-$(VERSION)/Makefile.am' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Sanity test
- grep -q 'SUBDIRS = module include' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/Makefile.am'
- @# Run autogen on the stripped source tree
- cd '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)'; ./autogen.sh
- rm -fr '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/autom4te.cache'
-
- @# This shunt allows DKMS to install the Module.symvers and zfs_config.h
- @# files to the ${dkms_tree} area through the POST_INSTALL directive.
- echo '#!/bin/sh' >'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- echo 'cp "$$@"' >>'$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
- chmod 755 '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(VERSION)/cp'
-
mkdir -p $(CURDIR)/debian/tmp/usr/lib
for i in `ls $(CURDIR)/debian/tmp/lib/*.so`; do \
ln -s /lib/`readlink $${i}` $(CURDIR)/debian/tmp/usr/lib/`basename $${i}`; \
@@ -138,7 +94,7 @@
mv $(CURDIR)/debian/tmp/usr/lib/systemd/system/* $(CURDIR)/debian/tmp/lib/systemd/system/
rmdir $(CURDIR)/debian/tmp/usr/lib/systemd/system
- find '$(CURDIR)/debian/tmp' -name '*~' | xargs rm
+ #find '$(CURDIR)/debian/tmp' -name '*~' | xargs rm
# Fix the includes according to https://github.com/zfsonlinux/zfs/issues/2903
./debian/fix_includes-libspl.sh

2
zfs-patches/series Normal file
View File

@ -0,0 +1,2 @@
fix-control.patch
fix-changelog.patch