diff options
author | Michał Górny <mgorny@gentoo.org> | 2011-08-22 08:37:26 +0000 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2011-08-22 08:37:26 +0000 |
commit | 665617f9251b6aab1d51be9e5fb85562ce7bcb21 (patch) | |
tree | 101430d089a02c2b8443927c4c2e5e1c4c85dfff /net-dns | |
parent | QA: remove default src_test execution, bug #364955. (diff) | |
download | gentoo-2-665617f9251b6aab1d51be9e5fb85562ce7bcb21.tar.gz gentoo-2-665617f9251b6aab1d51be9e5fb85562ce7bcb21.tar.bz2 gentoo-2-665617f9251b6aab1d51be9e5fb85562ce7bcb21.zip |
Introduce the ebuild for making /etc/resolv.conf a symlink.
(Portage version: 2.2.0_alpha51_p4/cvs/Linux x86_64)
Diffstat (limited to 'net-dns')
-rw-r--r-- | net-dns/resolvconf-symlink/ChangeLog | 10 | ||||
-rw-r--r-- | net-dns/resolvconf-symlink/metadata.xml | 13 | ||||
-rw-r--r-- | net-dns/resolvconf-symlink/resolvconf-symlink-0.ebuild | 53 |
3 files changed, 76 insertions, 0 deletions
diff --git a/net-dns/resolvconf-symlink/ChangeLog b/net-dns/resolvconf-symlink/ChangeLog new file mode 100644 index 000000000000..56077754d51d --- /dev/null +++ b/net-dns/resolvconf-symlink/ChangeLog @@ -0,0 +1,10 @@ +# ChangeLog for net-dns/resolvconf-symlink +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-dns/resolvconf-symlink/ChangeLog,v 1.1 2011/08/22 08:37:26 mgorny Exp $ + +*resolvconf-symlink-0 (22 Aug 2011) + + 22 Aug 2011; Michał Górny <mgorny@gentoo.org> +resolvconf-symlink-0.ebuild, + +metadata.xml: + Introduce the ebuild for making /etc/resolv.conf a symlink. + diff --git a/net-dns/resolvconf-symlink/metadata.xml b/net-dns/resolvconf-symlink/metadata.xml new file mode 100644 index 000000000000..2e823effb84a --- /dev/null +++ b/net-dns/resolvconf-symlink/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>no-herd</herd> + <maintainer> + <email>mgorny@gentoo.org</email> + <name>Michał Górny</name> + </maintainer> + <use> + <flag name='symlink'>Actually replace /etc/resolv.conf with a + symlink. Without this flag, the ebuild is a no-op.</flag> + </use> +</pkgmetadata> diff --git a/net-dns/resolvconf-symlink/resolvconf-symlink-0.ebuild b/net-dns/resolvconf-symlink/resolvconf-symlink-0.ebuild new file mode 100644 index 000000000000..9670b0aee61e --- /dev/null +++ b/net-dns/resolvconf-symlink/resolvconf-symlink-0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-dns/resolvconf-symlink/resolvconf-symlink-0.ebuild,v 1.1 2011/08/22 08:37:26 mgorny Exp $ + +EAPI=4 + +DESCRIPTION="Make /etc/resolv.conf a symlink to a runtime-writable location" +HOMEPAGE="http://www.gentoo.org" +SRC_URI="" + +LICENSE="as-is" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+symlink" + +S=${WORKDIR} + +pkg_preinst() { + if use symlink; then + if [[ -f "${ROOT}"etc/resolv.conf && ! -L "${ROOT}"etc/resolv.conf ]] + then # migrate existing resolv.conf + if [[ "$(head -n 1 "${ROOT}"etc/resolv.conf)" \ + != "# Generated by "* ]]; then + + eerror "${ROOT}etc/resolv.conf seems not to be autogenerated." + eerror "Aborting build to avoid removing user data. If that file is supposed" + eerror "to be autogenerated, please remove it manually. Otherwise, please" + eerror "set USE=-symlink to avoid installing resolv.conf symlink." + + die "${ROOT}etc/resolv.conf not autogenerated" + else + ebegin "Moving ${ROOT}etc/resolv.conf to ${ROOT}var/run/" + mv "${ROOT}"etc/resolv.conf "${ROOT}"var/run/ + eend ${?} || die + fi + fi + fi +} + +src_install() { + # XXX: /run should be more correct, when it's supported by baselayout + + use symlink && dosym /var/run/resolv.conf /etc/resolv.conf +} + +pkg_postrm() { + # Don't leave the user with no resolv.conf + if [[ ! -e "${ROOT}"etc/resolv.conf && -f "${ROOT}"var/run/resolv.conf ]]; then + ebegin "Moving ${ROOT}var/run/resolv.conf to ${ROOT}etc/" + mv "${ROOT}"var/run/resolv.conf "${ROOT}"etc/ + eend ${?} || die + fi +} |