Skip to content

Commit

Permalink
sys-process/acct: initd implement checkpath, #603606
Browse files Browse the repository at this point in the history
  • Loading branch information
wimmuskee committed Jan 2, 2017
1 parent 4a75bf0 commit 34607e7
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 0 deletions.
44 changes: 44 additions & 0 deletions sys-process/acct/acct-6.5.5-r4.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=3
inherit eutils autotools systemd

DESCRIPTION="GNU system accounting utilities"
HOMEPAGE="https://savannah.gnu.org/projects/acct/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ~ia64 ~mips ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE=""

src_prepare() {
epatch \
"${FILESDIR}"/${PN}-6.5.5-cross-compile.patch \
"${FILESDIR}"/${PN}-6.5.5-no-gets.patch
eautoreconf
}

src_configure() {
econf --enable-linux-multiformat
}

src_install() {
emake install DESTDIR="${D}" || die
dodoc AUTHORS ChangeLog INSTALL NEWS README TODO
keepdir /var/account
newinitd "${FILESDIR}"/acct.initd-r1 acct || die
newconfd "${FILESDIR}"/acct.confd acct || die
systemd_dounit "${FILESDIR}"/acct.service
insinto /etc/logrotate.d
newins "${FILESDIR}"/acct.logrotate acct || die

# sys-apps/sysvinit already provides this
rm "${ED}"/usr/bin/last "${ED}"/usr/share/man/man1/last.1 || die

# accton in / is only a temp workaround for #239748
dodir /sbin
mv "${ED}"/usr/sbin/accton "${ED}"/sbin/ || die
}
46 changes: 46 additions & 0 deletions sys-process/acct/acct-6.6.2-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5
inherit autotools base systemd

DESCRIPTION="GNU system accounting utilities"
HOMEPAGE="https://savannah.gnu.org/projects/acct/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE=""

PATCHES=(
"${FILESDIR}"/${PN}-6.6.2-cross-compile.patch
"${FILESDIR}"/${PN}-6.6.1-no-gets.patch
)

src_prepare() {
base_src_prepare
eautoreconf
}

src_configure() {
econf --enable-linux-multiformat
}

src_install() {
default
keepdir /var/account
newinitd "${FILESDIR}"/acct.initd-r1 acct
newconfd "${FILESDIR}"/acct.confd acct
systemd_dounit "${FILESDIR}"/acct.service
insinto /etc/logrotate.d
newins "${FILESDIR}"/acct.logrotate acct

# sys-apps/sysvinit already provides this
rm "${ED}"/usr/bin/last "${ED}"/usr/share/man/man1/last.1 || die

# accton in / is only a temp workaround for #239748
dodir /sbin
mv "${ED}"/usr/sbin/accton "${ED}"/sbin/ || die
}
34 changes: 34 additions & 0 deletions sys-process/acct/files/acct.initd-r1
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

extra_started_commands="report"

depend() {
need localmount
}

checkconfig() {
export ACCT_LOG=${ACCT_LOG:-/var/account/pacct}
checkpath -f -m 600 "${ACCT_LOG}"
return 0
}

start() {
checkconfig || return 1

ebegin "Starting accounting"
accton "${ACCT_LOG}" >/dev/null
eend $?
}

stop() {
ebegin "Stopping accounting"
accton off >/dev/null
eend $?
}

report() {
sa ${REPORT_OPTS} "${ACCT_LOG}"
}

0 comments on commit 34607e7

Please sign in to comment.