]> git.proxmox.com Git - mirror_zfs.git/blobdiff - config/deb.am
Improve error message for zfs create with @ or # in name
[mirror_zfs.git] / config / deb.am
index 36204b41c7428ca27dbd5fee64ad4455c3f1b860..e405547aa9493b7bd7972a4561016c1fdb94d2c3 100644 (file)
@@ -2,41 +2,71 @@ deb-local:
        @(if test "${HAVE_DPKGBUILD}" = "no"; then \
                echo -e "\n" \
        "*** Required util ${DPKGBUILD} missing.  Please install the\n" \
-        "*** package for your distribution which provides ${DPKGBUILD},\n" \
+       "*** package for your distribution which provides ${DPKGBUILD},\n" \
        "*** re-run configure, and try again.\n"; \
-                exit 1; \
+               exit 1; \
        fi; \
        if test "${HAVE_ALIEN}" = "no"; then \
                echo -e "\n" \
        "*** Required util ${ALIEN} missing.  Please install the\n" \
-        "*** package for your distribution which provides ${ALIEN},\n" \
+       "*** package for your distribution which provides ${ALIEN},\n" \
        "*** re-run configure, and try again.\n"; \
-                exit 1; \
+               exit 1; \
        fi)
 
-deb-modules: deb-local rpm-modules
-if CONFIG_KERNEL
-       name=${PACKAGE}-modules; \
-       version=${ZFS_META_VERSION}-${ZFS_META_RELEASE}; \
-       release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \
-       arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
-       pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \
-       pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \
-       fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2; \
-       $(RM) $$pkg1 $$pkg2
-endif
+deb-kmod: deb-local rpm-kmod
+       name=${PACKAGE}; \
+       version=${VERSION}-${RELEASE}; \
+       arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
+       debarch=`$(DPKG) --print-architecture`; \
+       pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
+       fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
+       $(RM) $$pkg1
+
+
+deb-dkms: deb-local rpm-dkms
+       name=${PACKAGE}; \
+       version=${VERSION}-${RELEASE}; \
+       arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \
+       debarch=`$(DPKG) --print-architecture`; \
+       pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \
+       fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
+       $(RM) $$pkg1
 
 deb-utils: deb-local rpm-utils
-if CONFIG_USER
        name=${PACKAGE}; \
-       version=${ZFS_META_VERSION}-${ZFS_META_RELEASE}; \
+       version=${VERSION}-${RELEASE}; \
        arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
+       debarch=`$(DPKG) --print-architecture`; \
        pkg1=$${name}-$${version}.$${arch}.rpm; \
-       pkg2=$${name}-devel-$${version}.$${arch}.rpm; \
-       pkg3=$${name}-test-$${version}.$${arch}.rpm; \
-       pkg4=$${name}-dracut-$${version}.$${arch}.rpm; \
-       fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2 $$pkg3 $$pkg4; \
-       $(RM) $$pkg1 $$pkg2 $$pkg3 $$pkg4
-endif
+       pkg2=libnvpair1-$${version}.$${arch}.rpm; \
+       pkg3=libuutil1-$${version}.$${arch}.rpm; \
+       pkg4=libzfs2-$${version}.$${arch}.rpm; \
+       pkg5=libzpool2-$${version}.$${arch}.rpm; \
+       pkg6=libzfs2-devel-$${version}.$${arch}.rpm; \
+       pkg7=$${name}-test-$${version}.$${arch}.rpm; \
+       pkg8=$${name}-dracut-$${version}.$${arch}.rpm; \
+       pkg9=$${name}-initramfs-$${version}.$${arch}.rpm; \
+       pkg10=`ls python*-pyzfs-$${version}* | tail -1`; \
+## Arguments need to be passed to dh_shlibdeps. Alien provides no mechanism
+## to do this, so we install a shim onto the path which calls the real
+## dh_shlibdeps with the required arguments.
+       path_prepend=`mktemp -d /tmp/intercept.XXX`; \
+       echo "#$(SHELL)" > $${path_prepend}/dh_shlibdeps; \
+       echo "`which dh_shlibdeps` -- \
+        -xlibuutil1linux -xlibnvpair1linux -xlibzfs2linux -xlibzpool2linux" \
+        >> $${path_prepend}/dh_shlibdeps; \
+## These -x arguments are passed to dpkg-shlibdeps, which exclude the
+## Debianized packages from the auto-generated dependencies of the new debs,
+## which should NOT be mixed with the alien-generated debs created here
+       chmod +x $${path_prepend}/dh_shlibdeps; \
+       env PATH=$${path_prepend}:$${PATH} \
+       fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch \
+           $$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
+           $$pkg8 $$pkg9 $$pkg10; \
+       $(RM) $${path_prepend}/dh_shlibdeps; \
+       rmdir $${path_prepend}; \
+       $(RM) $$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
+           $$pkg8 $$pkg9 $$pkg10;
 
-deb: deb-modules deb-utils
+deb: deb-kmod deb-dkms deb-utils