PACKAGELIST_CPP_FLAGS = -D$(DISTRO)=1 -DEXTRA_PACKAGES="$(EXTRA_PACKAGES)"
-packagelist: packagelist.in Makefile
+
+if HAVE_RPM
+QUERY_FILES_CMD := xargs rpm -qf --qf '%{name}\n'
+endif
+if HAVE_DPKG
+QUERY_FILES_CMD := xargs dpkg -S | cut -d: -f1
+endif
+if HAVE_PACMAN
+QUERY_FILES_CMD := xargs pacman -Qo | sed -r 's/.* is owned by ([^ ]+) .*/\1/'
+endif
+
+guestfsd.deps: ../daemon/guestfsd
+ /sbin/ldconfig -p > ld.so.cache.txt
+ objdump -p $^ |\
+ sed -ne '/NEEDED/{s/ *NEEDED *//; p;}' |\
+ xargs -i grep -F {} ld.so.cache.txt |\
+ sed -ne '/ => /{s/.* => *//; p;}' |\
+ $(QUERY_FILES_CMD) |\
+ sort -u > $@.t
+ rm -f ld.so.cache.txt
+ mv $@.t $@
+
+packagelist: packagelist.in Makefile guestfsd.deps
m4 $(PACKAGELIST_CPP_FLAGS) $< | \
grep -v '^[[:space:]]*$$' | grep -v '^#' > $@-t
cmp -s $@ $@-t || mv $@-t $@
DISTCLEANFILES += \
make.sh \
+ guestfsd.deps \
packagelist \
supermin.d/*
ifelse(UBUNTU,1,`define(`DEBIAN',1)')
ifelse(REDHAT,1,
- augeas-libs
cryptsetup
cryptsetup-luks dnl old name used before Fedora 17
dhclient
iputils
jansson
kernel
- libcap
- libldm
- libtirpc
nilfs-utils
ntfsprogs
ntfs-3g
ntfs-3g-system-compression
openssh-clients
- pcre
policycoreutils
reiserfs-utils
- libselinux
syslinux-extlinux
systemd dnl for /sbin/reboot and udevd
vim-minimal
xz
- yara
zfs-fuse
)
iputils-tracepath
isc-dhcp-client
ldmtool
- libaugeas0
libc-bin
- libcap2
- libhivex0
- libjansson4
- libpcre3
- libsystemd0
- libsystemd-id128-0
- libsystemd-journal0
- libtirpc1
- libyara4
- libyara3
linux-image
dnl syslinux 'suggests' mtools, but in reality it's a hard dependency:
mtools
)
ifelse(ARCHLINUX,1,
- augeas
cdrkit
cdrtools
cryptsetup
iproute2
iputils
jansson
- libcap
- libtirpc
linux
lrzip
dnl syslinux has mtools as optional dependency, but in reality it's
nilfs-utils
ntfs-3g
ntfs-3g-system-compression
- pcre
reiserfsprogs
systemd
vim
xz
- yara
)
ifelse(SUSE,1,
- augeas
dnl It seems no other augeas package depends on it.
augeas-lenses
btrfsprogs
initviocons
iproute2
iputils
- libcap2
- libhivex0
- libjansson4
- libselinux1
- libtirpc3
- libyara4
- libyara3
mkisofs
ntfsprogs
ntfs-3g
systemd
vim
xz
- yara
)
ifelse(FRUGALWARE,1,
- augeas
cryptsetup-luks
cdrkit
dhclient
iputils
jansson
kernel
- libcap
- libtirpc
ntfsprogs
ntfs-3g
openssh
- pcre
reiserfsprogs
systemd
vim
)
ifelse(MAGEIA,1,
- augeas
cryptsetup
chkconfig /* for /etc/init.d */
cdrkit-genisoimage
hivex
iproute2
iputils
- libcap
- libjansson4
- lib64jansson4 /* lib64jansson4 does not provide libjansson4 */
- libldm
- libtirpc
dnl syslinux uses mtools without depending on it
mtools
nilfs-utils
ntfsprogs
ntfs-3g
openssh-clients
- pcre
reiserfs-utils
- libselinux
systemd /* for /sbin/reboot and udevd */
vim-minimal
xz
)
ifelse(OPENMANDRIVA,1,
- augeas
cryptsetup
chkconfig /* for /etc/init.d */
cdrkit-genisoimage
dhcp-client
extlinux
grub2
- lib64hivex0
hivex
iproute2
iputils
- libcap
- libjansson4
- lib64jansson4 /* lib64jansson4 does not provide libjansson4 */
- libldm
- libtirpc
dnl syslinux uses mtools without depending on it
mtools
nilfs-utils
ntfs-3g
openssh-clients
- pcre
- libselinux
systemd /* for /sbin/reboot and udevd */
vim-minimal
xz
)
+dnl This file is autogenerated from guestfsd shared library dependencies
+include(guestfsd.deps)
+
acl
attr
bash
jfsutils
kmod
less
-libxml2
lsof
lsscsi
lvm2
AC_MSG_ERROR([/etc/os-release not available, please specify the distro using --with-distro=DISTRO])
fi
]
+ AM_CONDITIONAL([HAVE_RPM],
+ [AS_CASE([$DISTRO], [REDHAT | SUSE | OPENMANDRIVA | MAGEIA ], [true],
+ [*], [false])])
+ AM_CONDITIONAL([HAVE_DPKG],
+ [AS_CASE([$DISTRO], [DEBIAN | UBUNTU ], [true],
+ [*], [false])])
+ AM_CONDITIONAL([HAVE_PACMAN],
+ [AS_CASE([$DISTRO], [ARCHLINUX | FRUGALWARE ], [true],
+ [*], [false])])
)
AC_SUBST([DISTRO])