summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2011-08-22 08:37:26 +0000
committerMichał Górny <mgorny@gentoo.org>2011-08-22 08:37:26 +0000
commit665617f9251b6aab1d51be9e5fb85562ce7bcb21 (patch)
tree101430d089a02c2b8443927c4c2e5e1c4c85dfff /net-dns
parentQA: remove default src_test execution, bug #364955. (diff)
downloadgentoo-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/ChangeLog10
-rw-r--r--net-dns/resolvconf-symlink/metadata.xml13
-rw-r--r--net-dns/resolvconf-symlink/resolvconf-symlink-0.ebuild53
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
+}