Files
chromebrew/packages/avahi.rb
chromebrew-actions[bot] 85b4598458 AutoBuild: avahi started at 2025-07-14-12UTC. (#12188)
* avahi => 0.9-rc2

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Add built packages for linux/386 to branch avahi.

* Add built packages for linux/amd64 to branch avahi.

* Add built packages for linux/arm/v7 to branch avahi.

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: Satadru Pramanik <satadru@gmail.com>
Co-authored-by: satmandu <satmandu@users.noreply.github.com>
2025-07-14 14:03:30 +00:00

96 lines
4.3 KiB
Ruby

require 'buildsystems/autotools'
class Avahi < Autotools
description 'Avahi is a system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite.'
homepage 'https://avahi.org/'
version '0.9-rc2'
license 'LGPL-2.1'
compatibility 'all'
source_url 'https://github.com/avahi/avahi.git'
git_hashtag "v#{version}"
binary_compression 'tar.zst'
binary_sha256({
aarch64: '625947fe51f690ee8887dc547b9b5694ba8f63302b25f0a5e2d054c818e64664',
armv7l: '625947fe51f690ee8887dc547b9b5694ba8f63302b25f0a5e2d054c818e64664',
i686: 'e5f4c444fd22a951a98bf0f16c26a7fd01eae72e85cbf3aaf243995f9496301b',
x86_64: '551bf5e0fcd1d3906055c745e75b9f627026fbe1a63b82483235b9186f3e6f68'
})
depends_on 'dbus' # R (needed to enable avahi-client)
depends_on 'expat' # R
depends_on 'gdbm' # R
depends_on 'glibc' # R
depends_on 'glib' # R
depends_on 'libcap' # R
depends_on 'libdaemon' # R
depends_on 'libevent' # R
depends_on 'nss_mdns' # L
depends_on 'libssp' # R
depends_on 'xmltoman' => :build
autotools_configure_options "--enable-compat-libdns_sd \
--disable-gtk \
--disable-gtk3 \
--disable-libsystemd \
--disable-mono \
--disable-monodoc \
--disable-python \
--disable-qt3 \
--disable-qt4 \
--disable-qt5 \
--with-avahi-user=chronos \
--with-avahi-group=chronos \
--with-autoipd-group=chronos \
--with-autoipd-user=chronos \
--with-avahi-priv-access-group=chronos-access \
--with-distro=none"
def self.install
system "make DESTDIR=#{CREW_DEST_DIR} install"
FileUtils.mv "#{CREW_DEST_PREFIX}/etc/avahi/avahi-daemon.conf", "#{CREW_DEST_PREFIX}/etc/avahi/avahi-daemon.conf.default"
FileUtils.mv "#{CREW_DEST_PREFIX}/etc/avahi/hosts", "#{CREW_DEST_PREFIX}/etc/avahi/hosts.default"
FileUtils.mv "#{CREW_DEST_PREFIX}/etc/avahi/services/sftp-ssh.service", "#{CREW_DEST_PREFIX}/etc/avahi/services/sftp-ssh.service.disabled"
FileUtils.mv "#{CREW_DEST_PREFIX}/etc/avahi/services/ssh.service", "#{CREW_DEST_PREFIX}/etc/avahi/services/ssh.service.disabled"
# start avahi-daemon from bash.d, which loads after all of env.d via #{CREW_PREFIX}/etc/profile
File.write 'bashd_avahi', <<~BASHDAVAHI_EOF
[[ $(pgrep -wc avahi-daemon) > 0 ]] || source #{CREW_PREFIX}/bin/startavahi
BASHDAVAHI_EOF
FileUtils.install 'bashd_avahi', "#{CREW_DEST_PREFIX}/etc/bash.d/avahi", mode: 0o644
File.write 'start_avahi', <<~STARTAVAHI_EOF
if [[ $(pgrep -wc avahi-daemon) > 0 ]]; then
# distccd is already running.
# Return or exit depending upon whether script was sourced.
(return 0 2>/dev/null) && return 0 || exit 0
elif [[ -f '/.dockerenv' ]]; then
echo "In container. Avahi daemon will not be started."
(return 0 2>/dev/null) && return 0 || exit 0
fi
hostname="$(hostname)"
primaryinterface="$(ip route get 1 | awk '{print $5;exit}')"
localip="$(ip route get 1 | awk '{print $7;exit}')"
cp #{CREW_PREFIX}/etc/avahi/avahi-daemon.conf.default #{CREW_PREFIX}/etc/avahi/avahi-daemon.conf
cp #{CREW_PREFIX}/etc/avahi/hosts.default #{CREW_PREFIX}/etc/avahi/hosts
sed -i "s/#allow-interfaces=eth0/allow-interfaces=$primaryinterface/" #{CREW_PREFIX}/etc/avahi/avahi-daemon.conf
sed -i "s/#host-name=foo/host-name=$hostname/" #{CREW_PREFIX}/etc/avahi/avahi-daemon.conf
sed -i "s/#domain-name=local/domain-name=local/" #{CREW_PREFIX}/etc/avahi/avahi-daemon.conf
echo -e "\n${localip} ${hostname}.local" >> #{CREW_PREFIX}/etc/avahi/hosts
echo "Enabling Avahi mDNS/DNS-SD daemon for address $localip ..."
mkdir -p #{CREW_PREFIX}/var/log && touch #{CREW_PREFIX}/var/log/avahi.log
(sudo LD_LIBRARY_PATH="$LD_LIBRARY_PATH" #{CREW_PREFIX}/sbin/avahi-daemon &> #{CREW_PREFIX}/var/log/avahi.log &)
STARTAVAHI_EOF
FileUtils.install 'start_avahi', "#{CREW_DEST_PREFIX}/bin/startavahi", mode: 0o755
File.write 'stop_avahi', <<~STOP_AVAHI_EOF
#!/bin/bash
killall -9 avahi-daemon
STOP_AVAHI_EOF
FileUtils.install 'stop_avahi', "#{CREW_DEST_PREFIX}/bin/stopavahi", mode: 0o755
end
def self.postinstall
ExitMessage.add "The avahi daemon will be automatically started, but can be stopped with 'stopavahi' and restarted with 'startavahi'."
end
end