Fix O_APPEND for Linux 3.15 and older kernels
[zfs.git] / config / deb.am
blob0033dd7591ff49c1e5acf95e15c1e63aa0d03290
1 PHONY += deb-kmod deb-dkms deb-utils deb deb-local
3 deb-local:
4         @(if test "${HAVE_DPKGBUILD}" = "no"; then \
5                 echo -e "\n" \
6         "*** Required util ${DPKGBUILD} missing.  Please install the\n" \
7         "*** package for your distribution which provides ${DPKGBUILD},\n" \
8         "*** re-run configure, and try again.\n"; \
9                 exit 1; \
10         fi; \
11         if test "${HAVE_ALIEN}" = "no"; then \
12                 echo -e "\n" \
13         "*** Required util ${ALIEN} missing.  Please install the\n" \
14         "*** package for your distribution which provides ${ALIEN},\n" \
15         "*** re-run configure, and try again.\n"; \
16                 exit 1; \
17         fi; \
18         if test "${ALIEN_MAJOR}" = "8" && \
19            test "${ALIEN_MINOR}" = "95"; then \
20         if test "${ALIEN_POINT}" = "1" || \
21            test "${ALIEN_POINT}" = "2" || \
22            test "${ALIEN_POINT}" = "3"; then \
23                 /bin/echo -e "\n" \
24         "*** Installed version of ${ALIEN} is known to be broken;\n" \
25         "*** attempting to generate debs will fail! See\n" \
26         "*** https://github.com/openzfs/zfs/issues/11650 for details.\n"; \
27                 exit 1; \
28         fi; \
29         fi)
31 deb-kmod: deb-local rpm-kmod
32         name=${PACKAGE}; \
33         version=${VERSION}-${RELEASE}; \
34         arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
35         debarch=`$(DPKG) --print-architecture`; \
36         pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
37         fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1 || exit 1; \
38         $(RM) $$pkg1
41 deb-dkms: deb-local rpm-dkms
42         name=${PACKAGE}; \
43         version=${VERSION}-${RELEASE}; \
44         arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \
45         debarch=`$(DPKG) --print-architecture`; \
46         pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \
47         fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1 || exit 1; \
48         $(RM) $$pkg1
50 deb-utils: deb-local rpm-utils-initramfs
51         name=${PACKAGE}; \
52         version=${VERSION}-${RELEASE}; \
53         arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
54         debarch=`$(DPKG) --print-architecture`; \
55         pkg1=$${name}-$${version}.$${arch}.rpm; \
56         pkg2=libnvpair3-$${version}.$${arch}.rpm; \
57         pkg3=libuutil3-$${version}.$${arch}.rpm; \
58         pkg4=libzfs5-$${version}.$${arch}.rpm; \
59         pkg5=libzpool5-$${version}.$${arch}.rpm; \
60         pkg6=libzfs5-devel-$${version}.$${arch}.rpm; \
61         pkg7=$${name}-test-$${version}.$${arch}.rpm; \
62         pkg8=$${name}-dracut-$${version}.noarch.rpm; \
63         pkg9=$${name}-initramfs-$${version}.$${arch}.rpm; \
64         pkg10=`ls python3-pyzfs-$${version}.noarch.rpm 2>/dev/null`; \
65         pkg11=`ls pam_zfs_key-$${version}.$${arch}.rpm 2>/dev/null`; \
66 ## Arguments need to be passed to dh_shlibdeps. Alien provides no mechanism
67 ## to do this, so we install a shim onto the path which calls the real
68 ## dh_shlibdeps with the required arguments.
69         path_prepend=`mktemp -d /tmp/intercept.XXXXXX`; \
70         echo "#$(SHELL)" > $${path_prepend}/dh_shlibdeps; \
71         echo "`which dh_shlibdeps` -- \
72          -xlibuutil3linux -xlibnvpair3linux -xlibzfs5linux -xlibzpool5linux" \
73          >> $${path_prepend}/dh_shlibdeps; \
74 ## These -x arguments are passed to dpkg-shlibdeps, which exclude the
75 ## Debianized packages from the auto-generated dependencies of the new debs,
76 ## which should NOT be mixed with the alien-generated debs created here
77         chmod +x $${path_prepend}/dh_shlibdeps; \
78         env PATH=$${path_prepend}:$${PATH} \
79         fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch \
80             $$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
81             $$pkg8 $$pkg9 $$pkg10 $$pkg11 || exit 1; \
82         $(RM) $${path_prepend}/dh_shlibdeps; \
83         rmdir $${path_prepend}; \
84         $(RM) $$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
85             $$pkg8 $$pkg9 $$pkg10 $$pkg11;
87 deb: deb-kmod deb-dkms deb-utils