diff options
Diffstat (limited to 'config/avahi')
-rw-r--r-- | config/avahi/avahi.inc | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/config/avahi/avahi.inc b/config/avahi/avahi.inc index 0bc181ec..a22d94c0 100644 --- a/config/avahi/avahi.inc +++ b/config/avahi/avahi.inc @@ -33,10 +33,16 @@ $pfs_version = substr(trim(file_get_contents("/etc/version")),0,3); switch ($pfs_version) { case "1.2": case "2.0": - define('AVAHI_BASE','/usr/local'); + define('AVAHI_BASE', '/usr/local'); + define('AVAHI_LOCALBASE', AVAHI_BASE); + break; + case "2.1": + define('AVAHI_BASE', '/usr/pbi/avahi-' . php_uname("m")); + define('AVAHI_LOCALBASE', AVAHI_BASE); break; default: define('AVAHI_BASE', '/usr/pbi/avahi-' . php_uname("m")); + define('AVAHI_LOCALBASE', AVAHI_BASE . '/local'); } function avahi_start() { @@ -48,7 +54,7 @@ function avahi_stop() { } function avahi_install() { - global $g, $config; + global $g, $config, $pfs_version; conf_mount_rw(); // This old hacky install code should only happen on 1.x @@ -56,8 +62,8 @@ function avahi_install() { $archive = (substr(trim(file_get_contents("/etc/version")),0,1) == "1") ? "avahi.tar.gz" : ""; // Extract out libraries and avahi-daemon if(!empty($archive) && file_exists("/root/{$archive}")) { - exec("mkdir -p " . AVAHI_BASE . "/etc/avahi/services/"); - exec("mv " . AVAHI_BASE . "/etc/avahi/*.service " . AVAHI_BASE . "/etc/avahi/services/"); + exec("mkdir -p " . AVAHI_LOCALBASE . "/etc/avahi/services/"); + exec("mv " . AVAHI_LOCALBASE . "/etc/avahi/*.service " . AVAHI_LOCALBASE . "/etc/avahi/services/"); exec("/usr/bin/tar xzPUf /root/{$archive} -C /"); unlink("/root/{$archive}"); // Make sure everthing was extracted @@ -67,6 +73,10 @@ function avahi_install() { } } + if ($pfs_version >= 2.2 && !file_exists('/usr/local/etc/gnome.subr')) { + @symlink(AVAHI_LOCALBASE . '/etc/gnome.subr', '/usr/local/etc/gnome.subr'); + } + // Add needed users and groups exec("/usr/sbin/pw useradd avahi -u 558"); exec("/usr/sbin/pw groupadd avahi -g 558"); @@ -158,8 +168,8 @@ rlimit-nproc=3 EOF; /* Write out .conf file */ - safe_mkdir(AVAHI_BASE . "/etc/avahi"); - $fd = fopen(AVAHI_BASE . "/etc/avahi/avahi-daemon.conf", "w"); + safe_mkdir(AVAHI_LOCALBASE . "/etc/avahi"); + $fd = fopen(AVAHI_LOCALBASE . "/etc/avahi/avahi-daemon.conf", "w"); fwrite($fd, $avahiconfig); fclose($fd); /* Write out rc.d startup file */ @@ -168,20 +178,20 @@ EOF; $start .= " mkdir -p /proc\n"; $start .= " mount -t procfs procfs /proc\n"; $start .= "fi\n"; - $start .= "/usr/bin/killall avahi-daemon\n"; - if (file_exists(AVAHI_BASE . "/etc/rc.d/dbus")) { - $start .= "/usr/bin/killall dbus-daemon\n"; - $start .= "rm /var/run/dbus/dbus.pid\n"; - $start .= AVAHI_BASE . "/etc/rc.d/dbus onestart\n"; + $start .= "/usr/bin/killall avahi-daemon >/dev/null 2>&1\n"; + if (file_exists(AVAHI_LOCALBASE . "/etc/rc.d/dbus")) { + $start .= AVAHI_LOCALBASE . "/etc/rc.d/dbus onestop\n"; + $start .= "rm /var/run/dbus/dbus.pid >/dev/null 2>&1\n"; + $start .= AVAHI_LOCALBASE . "/etc/rc.d/dbus onestart\n"; } $start .= "sleep 5\n"; $start .= AVAHI_BASE . "/sbin/avahi-daemon -D\n"; $start .= "/etc/rc.conf_mount_ro\n"; - $stop = "/usr/bin/killall avahi-daemon\n"; - if (file_exists(AVAHI_BASE . "/etc/rc.d/dbus")) { - $stop .= AVAHI_BASE . "/etc/rc.d/dbus onestop\n"; - $stop .= "rm /var/run/dbus/dbus.pid\n"; + $stop = "/usr/bin/killall avahi-daemon >/dev/null 2>&1\n"; + if (file_exists(AVAHI_LOCALBASE . "/etc/rc.d/dbus")) { + $stop .= AVAHI_LOCALBASE . "/etc/rc.d/dbus onestop\n"; + $stop .= "rm /var/run/dbus/dbus.pid >/dev/null 2>&1\n"; } write_rcfile(array( |