# $Id$ PNAME="avahi" PVER="0.7" PBUILD="r1" SPLIT_PACKAGES="avahi avahi-gtk avahi-gtk3 avahi-qt4" PCAT="net-dns" HOMEPAGE="http://avahi.org/" AVAHI_DEPEND=">= dev-libs/libdaemon-0.14 >= dev-libs/expat-2 >= dev-libs/glib2-2.54 >= sys-apps/dbus-1.10 >= sys-libs/libcap-2.25 >= sys-libs/libstdc++-6.3 >= virtual/initscripts >= net-dns/nss-mdns-0.10" GTK_DEPEND=">= x11-libs/gtk2+-2.24 >= gnome-base/libglade-2.6.4" GTK3_DEPEND=">= x11-libs/gtk3+-3.22" QT4_DEPEND=">= x11-libs/qt4-core-4.8" SDEPEND="${AVAHI_DEPEND} ${GTK_DEPEND} ${GTK3_DEPEND} ${QT4_DEPEND} >= dev-util/intltool-0.50 >= dev-util/pkgconfig-0.25" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude mtools qt4 multilib mbuild systemd cleanutils SRC_URI=( http://avahi.org/download/${SRCFILE} mirror://${PNAME}/${SRCFILE} ) UP2DATE="updatecmd ${HOMEPAGE}/download | grep ${PNAME}- | lasttarball gz" split_info_avahi() { DESCRIPTION="Avahi is a system which facilitates service discovery on a local network." DEPEND="${AVAHI_DEPEND}" } split_info_avahi-gtk() { DESCRIPTION="GTK2 user interface library for Avahi." DEPEND="== net-dns/avahi-${PVER} ${GTK_DEPEND}" } split_info_avahi-gtk3() { DESCRIPTION="GTK3 user interface library for Avahi." DEPEND="== net-dns/avahi-${PVER} ${GTK3_DEPEND}" } split_info_avahi-qt4() { DESCRIPTION="QT4 user interface library for Avahi." DEPEND="== net-dns/avahi-${PVER} ${QT4_DEPEND}" } pkg_setup() { preinstall_avahi } src_prepare() { munpack ${SRCFILE} || die all-abis 'sed -i "s:-DG[^ ]*_DISABLE_DEPRECATED=1::g" avahi-ui/Makefile.* || die' } src_compile() { local myconf="--localstatedir=/var --with-systemdsystemunitdir=$(mget-systemd-unit-dir) \ --with-distro=none --enable-compat-libdns_sd --enable-compat-howl --enable-autoipd --with-autoipd-user=avahi --with-autoipd-group=avahi --disable-python-dbus --disable-pygtk --disable-monodoc --disable-doxygen-doc --disable-xmltoman --disable-gdbm --disable-mono --disable-python --disable-qt3 --enable-dbus --enable-glib --enable-gtk --enable-gtk3" # qt4 is not multilib on 64bit systems! # exclude them from multilib, but build everything else multilib if [[ ${ARCH} = x86_64 ]] then only-m32 mconfigure ${myconf} --disable-qt4 || die only-m64 mconfigure ${myconf} --enable-qt4 || die else mconfigure ${myconf} --enable-qt4 || die fi mmake || die } src_install_avahi() { mmake DESTDIR=${BINDIR} install || die # for howl and mdnsresponder compat mlink avahi-compat-howl.pc /usr/$(mlibdir)/pkgconfig/howl.pc || die mlink avahi-compat-libdns_sd.pc /usr/$(mlibdir)/pkgconfig/libdns_sd.pc || die mlink avahi-compat-libdns_sd/dns_sd.h /usr/include/dns_sd.h || die # remove examples mdelete /etc/avahi/services/ssh.service || die mdelete /etc/avahi/services/sftp-ssh.service || die # always keep this directory mkeepdir /etc/avahi/services || die minstalldocs ChangeLog LICENSE README # remove stuff from other packages # gtk2+3 mdelete /usr/bin/bssh || die mdelete /usr/bin/bshell || die mdelete /usr/bin/bvnc || die mdelete -r /usr/share/applications || die mdelete -r /usr/share/avahi/interfaces || die mdelete -r /usr/include/avahi-ui || die mdelete /usr/$(mlibdir)/libavahi-ui\*.\* || die mdelete /usr/$(mlibdir)/pkgconfig/avahi-ui-gtk3.pc mdelete /usr/$(mlibdir)/pkgconfig/avahi-ui.pc if [[ $(mlibdir) != lib ]] then mdelete /usr/lib/libavahi-ui\*.\* || die mdelete /usr/lib/pkgconfig/avahi-ui-gtk3.pc mdelete /usr/lib/pkgconfig/avahi-ui.pc fi # qt4 mdelete /usr/$(mlibdir)/libavahi-qt4\*.\* || die mdelete /usr/$(mlibdir)/pkgconfig/avahi-qt4\*.\* || die mdelete -r /usr/include/avahi-qt4 || die } src_install_avahi-gtk() { # first install needed libs to fix link issues mmake -j1 -C avahi-common DESTDIR=${BINDIR} install || die mmake -j1 -C avahi-glib DESTDIR=${BINDIR} install || die mmake -j1 -C avahi-client DESTDIR=${BINDIR} install || die # install gtk-ui mmake -j1 -C avahi-ui DESTDIR=${BINDIR} install || die # then remove temp libs mmake -j1 -C avahi-client DESTDIR=${BINDIR} uninstall || die mmake -j1 -C avahi-glib DESTDIR=${BINDIR} uninstall || die mmake -j1 -C avahi-common DESTDIR=${BINDIR} uninstall || die mdelete -r /usr/include/avahi-common || die mdelete -r /usr/include/avahi-client || die mdelete -r /usr/include/avahi-glib || die # only keep gtk2 libs zapmost ${BINDIR} \ usr/$(mlibdir)/libavahi-ui.* \ $([[ $(mlibdir) != lib ]] && echo 'usr/lib/libavahi-ui.*') \ || die # missing pkgconfig file all-abis 'minstalldir /usr/$(mlibdir)/pkgconfig' || die all-abis 'minstallfile avahi-ui.pc /usr/$(mlibdir)/pkgconfig' || die } src_install_avahi-gtk3() { # first install needed libs to fix link issues mmake -j1 -C avahi-common DESTDIR=${BINDIR} install || die mmake -j1 -C avahi-glib DESTDIR=${BINDIR} install || die mmake -j1 -C avahi-client DESTDIR=${BINDIR} install || die # install gtk-ui mmake -j1 -C avahi-ui DESTDIR=${BINDIR} install || die # then remove temp libs mmake -j1 -C avahi-client DESTDIR=${BINDIR} uninstall || die mmake -j1 -C avahi-glib DESTDIR=${BINDIR} uninstall || die mmake -j1 -C avahi-common DESTDIR=${BINDIR} uninstall || die mdelete -r /usr/include/avahi-common || die mdelete -r /usr/include/avahi-client || die mdelete -r /usr/include/avahi-glib || die # only keep gtk3 libs, remove gtk2 libs mdelete /usr/$(mlibdir)/libavahi-ui.\* || die if [[ $(mlibdir) != lib ]] then mdelete /usr/lib/libavahi-ui.\* || die fi # missing pkgconfig file all-abis 'minstalldir /usr/$(mlibdir)/pkgconfig' || die all-abis 'minstallfile avahi-ui-gtk3.pc /usr/$(mlibdir)/pkgconfig' || die } src_install_avahi-qt4() { # first install needed libs to fix link issues mmake -C avahi-common DESTDIR=${BINDIR} install || die # install qt-ui mmake -C avahi-qt DESTDIR=${BINDIR} install || die # then remove temp libs mmake -C avahi-common DESTDIR=${BINDIR} uninstall || die mdelete -r /usr/include/avahi-common || die # missing pkgconfig file if [[ ${ARCH} = x86_64 ]] then only-m64 'minstalldir /usr/$(mlibdir)/pkgconfig' || die only-m64 'minstallfile avahi-qt4.pc /usr/$(mlibdir)/pkgconfig' || die else all-abis 'minstalldir /usr/$(mlibdir)/pkgconfig' || die all-abis 'minstallfile avahi-qt4.pc /usr/$(mlibdir)/pkgconfig' || die fi zapmost ${BINDIR} \ usr/$(mlibdir)/libavahi-qt4*.* \ usr/$(mlibdir)/pkgconfig/avahi-qt4*.* \ usr/include/avahi-qt4 \ || die } preinstall_avahi() { if [[ ! -z $(magequery -n mdnsresponder) ]] then echo -e ${COLRED} echo -e "Error: net-misc/mdnsresponder is installed!!" echo -e "mdnsresponder is now superseeded by avahi and deprecated in this distribution." echo -e "Please uninstall net-misc/mdnsresponder first!" echo -e ${COLDEFAULT} die "net-misc/mdnsresponder found!" fi # adding avahi user mgroupadd -o "-g 303" netdev mgroupadd -o "-g 304" avahi museradd -o "-u 304 -g avahi -d /dev/null -s /bin/false" avahi } postinstall_avahi() { mstartunit avahi-daemon.service } postremove_avahi() { mstopunit avahi-daemon.service }