于 2011年05月22日 23:22, Henry Gebhardt 写道: > On Sun, May 22, 2011 at 02:50:00PM +0800, microcai wrote: >> Heya, >> >> Here is the 2nd version. >> >> Split the DHCP and TFTP socket and use Servie=dnsmasq.servie to point to >> dnsmasq. >> >> Add einfo to the user tell then how to do with the socket unit files. >> >> both DNS and tftp have been test. I haven't test DHCP activation, But I >> think it will works. >> >> CC systemd for other people to review the socket unit files. > > CC'ing Michal, I hope you don't mind. But one question: Should > services/sockets be enabled by default (e.g. using your > systemd_enable_services() function)? > >> >> Thanks. >>
Updated. Use systemd_dounit() and always intall systemd unit files. Description changed. Hope this time I did the right job, once for all. ;) As for upstream, I've send him the patch. But we don't want to wait for another release, do we?
[Unit] Description=Small forwarding DNS server with DHCP and tftp support. After=network.target [Service] StandardOutput=syslog StandardError=syslog ExecStart=/usr/sbin/dnsmasq -d -k
[Unit] Description=DNS Socket activation for dnsmasq - Small forwarding DNS server with DHCP and tftp support. [Socket] BindIPv6Only=ipv6-only #DNS ListenDatagram=0.0.0.0:53 ListenStream=0.0.0.0:53 ListenDatagram=[::]:53 ListenStream=[::]:53 [Install] WantedBy=sockets.target
[Unit] Description=DHCP Socket activation for dnsmasq - Small forwarding DNS server with DHCP and tftp support. [Socket] BindIPv6Only=ipv6-only ListenDatagram=0.0.0.0:67 ListenDatagram=[::]:67 Service=dnsmasq.service [Install] WantedBy=sockets.target
[Unit] Description=TFTP Socket activation for dnsmasq - Small forwarding DNS server with DHCP and tftp support. [Socket] BindIPv6Only=ipv6-only #TFTP, uncomment this to have tftp support ListenDatagram=[::]:69 ListenDatagram=0.0.0.0:69 Service=dnsmasq.service [Install] WantedBy=sockets.target
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dns/dnsmasq/dnsmasq-2.57.ebuild,v 1.6
2011/04/16 18:23:07 armin76 Exp $
EAPI=2
inherit eutils toolchain-funcs flag-o-matic systemd
MY_P="${P/_/}"
MY_PV="${PV/_/}"
DESCRIPTION="Small forwarding DNS server"
HOMEPAGE="http://www.thekelleys.org.uk/dnsmasq/"
SRC_URI="http://www.thekelleys.org.uk/dnsmasq/${MY_P}.tar.lzma"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ~ppc ~ppc64 s390 sh sparc x86
~sparc-fbsd ~x86-fbsd"
IUSE="dbus +dhcp idn ipv6 nls tftp"
RDEPEND="dbus? ( sys-apps/dbus )
idn? ( net-dns/libidn )
nls? (
sys-devel/gettext
net-dns/libidn
)
"
DEPEND="${RDEPEND}
dev-util/pkgconfig
|| ( app-arch/xz-utils app-arch/lzma-utils )"
S="${WORKDIR}/${PN}-${MY_PV}"
src_prepare() {
# dnsmasq on FreeBSD wants the config file in a silly location, this
fixes
epatch "${FILESDIR}/${PN}-2.47-fbsd-config.patch"
# apply systemd patch
epatch "${FILESDIR}/${P}-systemd.patch"
}
src_configure() {
COPTS=""
use tftp || COPTS+=" -DNO_TFTP"
use dhcp || COPTS+=" -DNO_DHCP"
use ipv6 || COPTS+=" -DNO_IPV6"
use dbus && COPTS+=" -DHAVE_DBUS"
use idn && COPTS+=" -DHAVE_IDN"
}
src_compile() {
emake \
PREFIX=/usr \
CC="$(tc-getCC)" \
CFLAGS="${CFLAGS}" \
COPTS="${COPTS}" \
all$(use nls && echo "-i18n") || die
}
src_install() {
emake \
PREFIX=/usr \
MANDIR=/usr/share/man \
DESTDIR="${D}" \
install$(use nls && echo "-i18n") || die
dodoc CHANGELOG FAQ
dohtml *.html
newinitd "${FILESDIR}"/dnsmasq-init dnsmasq
newconfd "${FILESDIR}"/dnsmasq.confd dnsmasq
insinto /etc
newins dnsmasq.conf.example dnsmasq.conf
if use dbus ; then
insinto /etc/dbus-1/system.d
doins dbus/dnsmasq.conf
fi
systemd_dounit "${FILESDIR}/dnsmasq.service"
systemd_dounit "${FILESDIR}/dnsmasq.socket"
use dhcp && systemd_dounit "${FILESDIR}/dnsmasq-dhcp.socket"
use tftp && systemd_dounit "${FILESDIR}/dnsmasq-tftp.socket"
}
pkg_postinst(){
einfo "We have installed systemd unit files.If you're using systemd,
enable dnsmasq with"
einfo "systemctl enable ${PN}.socket"
if use dhcp || use tftp ; then
einfo "If you want to enable dhcp and ftp support in ${PN},
don't forget to run "
einfo "systemctl enable ${PN}-dhcp.socket "
einfo "and"
einfo "systemctl enable ${PN}-tftp.socket"
einfo "when you enable it in the ${PN} configure file"
fi
}
signature.asc
Description: OpenPGP digital signature
_______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
