Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c0cb053 --- /dev/null +++ b/Makefile
@@ -0,0 +1,163 @@ +# +# Copyright (c) 2010-2011 Nest, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the makefile for the Avahi ZeroConf (aka Bonjour) +# multicast DNS (mDNS) Service Discovery (SD) software. +# + + +include pre.mak + +PackageName := avahi + +PackageExtension := tar.gz +PackageSeparator := - + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +CleanPaths += $(PackageLicenseFile) + +SOURCEDIRS = $(PackageSourceDir) +$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/LICENSE: $(BuildDirectory)/source + +$(PackageLicenseFile): $(PackageSourceDir)/LICENSE + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) + $(expand-and-patch-package) + +# Prepare the sources. + +$(BuildDirectory)/source: | $(PackageSourceDir) + $(Verbose)touch $@ + +# Patch the sources, if necessary. + +$(BuildDirectory)/patch: $(BuildDirectory)/source + $(Verbose)touch $@ + +# Generate the package build makefile. + +# Configure the source for building. +# +# Avahi uses and, in fact, requires pkg-config to set-up LDFLAGS and +# CFLAGS for LIBDAEMON even though these are explicitly provided on +# the configure command line above as prescribed in the "how to +# configure WITHOUT pkg-config" instructions. +# +# Unfortunately, some site Linux systems are quite old and have a +# version of pkg-config that avahi refuses to work with. +# Consequently, we place $(HostBinDir) first in the path to ensure +# that the project-local version of pkg-config is detected and used +# rather than a host- or site-local version. + +$(BuildDirectory)/configure: PATH := $(HostBinDir):$(PATH) + +$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory) + $(Verbose)cd $(BuildDirectory) && \ + $(CURDIR)/$(PackageSourceDir)/configure \ + CC="$(CC) $(CPPOPTFLAGS)" CXX="$(CXX) $(CPPOPTFLAGS)" AR=$(AR) RANLIB=$(RANLIB) STRIP=$(STRIP) \ + INSTALL="$(INSTALL) $(INSTALLFLAGS)" \ + CPPFLAGS="$(call ToolGenerateIncludeArgument,$(ExpatIncludePath)) $(call ToolGenerateIncludeArgument,$(LibCapIncludePath)) \ + $(call ToolGenerateIncludeArgument,$(LinuxIncludePath))" \ + LDFLAGS="$(call GenerateLibraryPathArgument,$(ExpatLibraryPath)) $(call GenerateLibraryPathArgument,$(LibCapLibraryPath))" \ + DBUS_CFLAGS="$(call ToolGenerateIncludeArgument,$(DbusIncludePaths))" \ + DBUS_LIBS="$(call GenerateLibraryArgument,$(DbusLibraryPath))" \ + DBUS_VERSION=$(shell cat $(DbusSourcesPath)/dbus.version) \ + LIBDAEMON_CFLAGS="$(call ToolGenerateIncludeArgument,$(DaemonIncludePath))" \ + LIBDAEMON_LIBS="$(call GenerateLibraryArgument,$(DaemonLibraryPath))" \ + --build=$(HostTuple) \ + --host=$(TargetTuple) \ + --disable-autoipd \ + --disable-gdbm \ + --disable-glib \ + --disable-gobject \ + --disable-gtk \ + --disable-gtk3 \ + --disable-manpages \ + --disable-mono \ + --disable-monodoc \ + --disable-python \ + --disable-qt3 \ + --disable-qt4 \ + --enable-dbus \ + --enable-libdaemon \ + --with-distro=none \ + --with-xml=expat \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static + $(Verbose)touch $@ + +# Build the source. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +$(BuildDirectory)/build: $(BuildDirectory)/configure + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all + $(Verbose)touch $@ + +# Stage the build to a temporary installation area. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. +# +# We explictly remove 'libavahi-core.la' and 'libavahi-common.la' +# because some packages that depend on these libraries use libtool. If +# libtool finds a '*.la' file for a library, it uses the value of +# 'libdir=<dir>' it finds. In our case, since '--prefix=/usr' this +# value is '/usr/lib'. It then resolves '-lavahi-core' or +# '-lavahi-common' to '/usr/lib/libavahi-core.so' and +# '/usr/lib/libavahi-common.so', respectively. In a cross-compilation +# environment, this is likely to be neither the right architecture nor +# the right version to link against. In short, we lose. +# +# We could also handle this by removing DESTDIR and setting the prefix +# to $(ResultDirectory); however, that results in libtool hard-coding +# $(ResultDirectory) as the RPATH in the linked executables which is +# NOT what we want either. We lose again. +# +# By removing the '*.la' file, we win by ensuring neither a misdirected +# link nor an RPATH. + +$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install + $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libavahi-common.la usr/lib/libavahi-core.la usr/lib/libavahi-client.la) + $(Verbose)touch $@ + +.PHONY: stage +stage: $(BuildDirectory)/stage + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak + + +
diff --git a/avahi.patches/avahi-50.description b/avahi.patches/avahi-50.description new file mode 100644 index 0000000..dddcede --- /dev/null +++ b/avahi.patches/avahi-50.description
@@ -0,0 +1,2 @@ +This patch handles the absence of SOCK_CLOEXEC for sytems in which it is +not defined.
diff --git a/avahi.patches/avahi-50.patch b/avahi.patches/avahi-50.patch new file mode 100644 index 0000000..b772a20 --- /dev/null +++ b/avahi.patches/avahi-50.patch
@@ -0,0 +1,24 @@ +diff -aruN a/avahi-daemon/sd-daemon.c b/avahi-daemon/sd-daemon.c +--- a/avahi-daemon/sd-daemon.c 2010-07-12 17:45:20.000000000 -0700 ++++ b/avahi-daemon/sd-daemon.c 2010-09-08 09:52:29.000000000 -0700 +@@ -328,6 +328,11 @@ + #if defined(DISABLE_SYSTEMD) || !defined(__linux__) + return 0; + #else ++# if defined(SOCK_CLOEXEC) ++ int sock_cloexec = SOCK_CLOEXEC; ++# else ++# define sock_cloexec 0 ++# endif + int fd = -1, r; + struct msghdr msghdr; + struct iovec iovec; +@@ -353,7 +358,7 @@ + goto finish; + } + +- if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) { ++ if ((fd = socket(AF_UNIX, SOCK_DGRAM|sock_cloexec, 0)) < 0) { + r = -errno; + goto finish; + }
diff --git a/avahi.patches/avahi-51.description b/avahi.patches/avahi-51.description new file mode 100644 index 0000000..adbe41d --- /dev/null +++ b/avahi.patches/avahi-51.description
@@ -0,0 +1 @@ +This patch allows the package builder to override the D-Bus version from the command line.
diff --git a/avahi.patches/avahi-51.patch b/avahi.patches/avahi-51.patch new file mode 100644 index 0000000..6c93697 --- /dev/null +++ b/avahi.patches/avahi-51.patch
@@ -0,0 +1,22 @@ +diff -aruN a/configure b/configure +--- a/configure 2010-10-04 17:05:05.643932697 -0700 ++++ b/configure 2010-10-11 13:35:22.000000000 -0700 +@@ -20221,7 +20221,6 @@ + fi + + +-DBUS_VERSION="Disabled" + DBUS_SYS_DIR="Disabled" + DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="Disabled" + if test "x$HAVE_DBUS" = "xyes" ; then +@@ -20321,7 +20320,9 @@ + $as_echo "#define HAVE_DBUS 1" >>confdefs.h + + +- DBUS_VERSION=`$PKG_CONFIG dbus-1 --modversion` ++ if test "z$DBUS_VERSION" = "z"; then ++ DBUS_VERSION=`$PKG_CONFIG dbus-1 --modversion` ++ fi + DBUS_VERSION_MAJOR=`echo $DBUS_VERSION | awk -F. '{print $1}'` + DBUS_VERSION_MINOR=`echo $DBUS_VERSION | awk -F. '{print $2}'` + DBUS_VERSION_MICRO=`echo $DBUS_VERSION | awk -F. '{print $3}'`
diff --git a/avahi.tar.gz b/avahi.tar.gz new file mode 100644 index 0000000..07b6f66 --- /dev/null +++ b/avahi.tar.gz Binary files differ
diff --git a/avahi.url b/avahi.url new file mode 100644 index 0000000..5af5eb1 --- /dev/null +++ b/avahi.url
@@ -0,0 +1 @@ +http://avahi.org/download/avahi-0.6.31.tar.gz
diff --git a/avahi.version b/avahi.version new file mode 100644 index 0000000..5c35298 --- /dev/null +++ b/avahi.version
@@ -0,0 +1 @@ +0.6.31