commit:     210c3f977cf72db1948716e4b7d85c7a5a984b5f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 04:10:31 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed May  4 04:19:18 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=210c3f97

net-analyzer/darkstat: add error handling; EAPI 8; live template

- EAPI 8
- Add error handling for if chroot directory is empty (don't try to chown /;
  thankfully no -R option was there)
- Use fowners instead of chown to notice missing user earlier (although 
shouldn't
  happen)
- Use live ebuild template

Reported-by: Corvus
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...t-9999999.ebuild => darkstat-3.0.719-r4.ebuild} | 46 +++++++++++----------
 net-analyzer/darkstat/darkstat-9999999.ebuild      | 48 ++++++++++++----------
 2 files changed, 52 insertions(+), 42 deletions(-)

diff --git a/net-analyzer/darkstat/darkstat-9999999.ebuild 
b/net-analyzer/darkstat/darkstat-3.0.719-r4.ebuild
similarity index 58%
copy from net-analyzer/darkstat/darkstat-9999999.ebuild
copy to net-analyzer/darkstat/darkstat-3.0.719-r4.ebuild
index 4ca39eb748e3..1f62dd3d13c0 100644
--- a/net-analyzer/darkstat/darkstat-9999999.ebuild
+++ b/net-analyzer/darkstat/darkstat-3.0.719-r4.ebuild
@@ -1,32 +1,33 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 
-inherit autotools git-r3
+inherit autotools
 
 DESCRIPTION="Network traffic analyzer with cute web interface"
 HOMEPAGE="https://unix4lyfe.org/darkstat/";
-EGIT_REPO_URI="https://www.unix4lyfe.org/git/darkstat";
+if [[ ${PV} == *9999* ]] ; then
+       EGIT_REPO_URI="https://www.unix4lyfe.org/git/darkstat";
+       inherit git-r3
+else
+       SRC_URI="https://unix4lyfe.org/${PN}/${P}.tar.bz2";
+       KEYWORDS="~amd64 ~ppc ~x86"
+fi
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS=""
 
-BDEPEND="
-       app-editors/vim-core
-"
-DEPEND="
-       acct-user/darkstat
+DEPEND="acct-user/darkstat
        dev-libs/libbsd
        net-libs/libpcap
-       sys-libs/zlib
-"
-RDEPEND="
-       ${DEPEND}
-"
+       sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
 DARKSTAT_CHROOT_DIR=${DARKSTAT_CHROOT_DIR:-/var/lib/darkstat}
+
 DOCS=( AUTHORS ChangeLog README NEWS )
+
 PATCHES=(
        "${FILESDIR}"/${PN}-3.0.719-strncpy-off-by-one.patch
 )
@@ -56,21 +57,24 @@ src_install() {
        sed -i -e "s:__CHROOT__:${DARKSTAT_CHROOT_DIR}:g" 
"${D}"/etc/init.d/darkstat || die
 
        keepdir "${DARKSTAT_CHROOT_DIR}"
-       chown darkstat:0 "${D}${DARKSTAT_CHROOT_DIR}"
+       fowners darkstat:0 "${DARKSTAT_CHROOT_DIR}"
 }
 
 pkg_postinst() {
        # Workaround bug #141619
        DARKSTAT_CHROOT_DIR=$(
-               sed -n 's/^#CHROOT=\(.*\)/\1/p' "${ROOT}"/etc/conf.d/darkstat
+               sed -n 's/^#CHROOT=\(.*\)/\1/p' "${EROOT}"/etc/conf.d/darkstat
        )
-       chown darkstat:0 "${ROOT}${DARKSTAT_CHROOT_DIR}"
+
+       if [[ -n "${DARKSTAT_CHROOT_DIR}" ]] && [[ "${DARKSTAT_CHROOT_DIR}" != 
"${EROOT:-/}" ]] ; then
+               chown darkstat:0 "${EROOT}/${DARKSTAT_CHROOT_DIR#/}/"
+       fi
 
        elog "To start different darkstat instances which will listen on a 
different"
-       elog "interfaces create in /etc/init.d directory the 'darkstat.if' 
symlink to"
+       elog "interface, create within the ${EROOT}/etc/init.d directory a 
'darkstat.if' symlink to"
        elog "darkstat script where 'if' is the name of the interface."
-       elog "Also in /etc/conf.d directory copy darkstat to darkstat.if"
+       elog "Also in the ${EROOT}/etc/conf.d directory, copy darkstat to 
darkstat.if"
        elog "and edit it to change default values."
        elog
-       elog "darkstat's default chroot directory is: 
\"${ROOT}${DARKSTAT_CHROOT_DIR}\""
+       elog "darkstat's default chroot directory is: 
${EROOT}/${DARKSTAT_CHROOT_DIR#/}"
 }

diff --git a/net-analyzer/darkstat/darkstat-9999999.ebuild 
b/net-analyzer/darkstat/darkstat-9999999.ebuild
index 4ca39eb748e3..1274c0c32950 100644
--- a/net-analyzer/darkstat/darkstat-9999999.ebuild
+++ b/net-analyzer/darkstat/darkstat-9999999.ebuild
@@ -1,32 +1,35 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 
-inherit autotools git-r3
+inherit autotools
 
 DESCRIPTION="Network traffic analyzer with cute web interface"
 HOMEPAGE="https://unix4lyfe.org/darkstat/";
-EGIT_REPO_URI="https://www.unix4lyfe.org/git/darkstat";
+if [[ ${PV} == *9999* ]] ; then
+       EGIT_REPO_URI="https://www.unix4lyfe.org/git/darkstat";
+       inherit git-r3
+else
+       SRC_URI="https://unix4lyfe.org/${PN}/${P}.tar.bz2";
+       KEYWORDS="~amd64 ~ppc ~x86"
+fi
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS=""
 
-BDEPEND="
-       app-editors/vim-core
-"
-DEPEND="
-       acct-user/darkstat
+# The live ebuild requires xxd to generate favicon.h.
+BDEPEND="app-editors/vim-core"
+DEPEND="acct-user/darkstat
        dev-libs/libbsd
        net-libs/libpcap
-       sys-libs/zlib
-"
-RDEPEND="
-       ${DEPEND}
-"
+       sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
 DARKSTAT_CHROOT_DIR=${DARKSTAT_CHROOT_DIR:-/var/lib/darkstat}
+
 DOCS=( AUTHORS ChangeLog README NEWS )
+
 PATCHES=(
        "${FILESDIR}"/${PN}-3.0.719-strncpy-off-by-one.patch
 )
@@ -56,21 +59,24 @@ src_install() {
        sed -i -e "s:__CHROOT__:${DARKSTAT_CHROOT_DIR}:g" 
"${D}"/etc/init.d/darkstat || die
 
        keepdir "${DARKSTAT_CHROOT_DIR}"
-       chown darkstat:0 "${D}${DARKSTAT_CHROOT_DIR}"
+       fowners darkstat:0 "${DARKSTAT_CHROOT_DIR}"
 }
 
 pkg_postinst() {
        # Workaround bug #141619
        DARKSTAT_CHROOT_DIR=$(
-               sed -n 's/^#CHROOT=\(.*\)/\1/p' "${ROOT}"/etc/conf.d/darkstat
+               sed -n 's/^#CHROOT=\(.*\)/\1/p' "${EROOT}"/etc/conf.d/darkstat
        )
-       chown darkstat:0 "${ROOT}${DARKSTAT_CHROOT_DIR}"
+
+       if [[ -n "${DARKSTAT_CHROOT_DIR}" ]] && [[ "${DARKSTAT_CHROOT_DIR}" != 
"${EROOT:-/}" ]] ; then
+               chown darkstat:0 "${EROOT}/${DARKSTAT_CHROOT_DIR#/}/"
+       fi
 
        elog "To start different darkstat instances which will listen on a 
different"
-       elog "interfaces create in /etc/init.d directory the 'darkstat.if' 
symlink to"
+       elog "interface, create within the ${EROOT}/etc/init.d directory a 
'darkstat.if' symlink to"
        elog "darkstat script where 'if' is the name of the interface."
-       elog "Also in /etc/conf.d directory copy darkstat to darkstat.if"
+       elog "Also in the ${EROOT}/etc/conf.d directory, copy darkstat to 
darkstat.if"
        elog "and edit it to change default values."
        elog
-       elog "darkstat's default chroot directory is: 
\"${ROOT}${DARKSTAT_CHROOT_DIR}\""
+       elog "darkstat's default chroot directory is: 
${EROOT}/${DARKSTAT_CHROOT_DIR#/}"
 }

Reply via email to