commit:     ce3320b8f7c1530d7438cd4774a72a75266e1c0b
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 27 14:03:48 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu Jul 27 14:04:04 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce3320b8

sys-process/acct: Bump to v6.6.4

Ebuild changes:
===============
 - Migrated to EAPI=6

 - Dropped usage of base eclass which is no longer needed

 - *-no-gets.patch dropped which is no longer necessary since upstream
   updated gnulib in v6.6.1

 - Runscript improved

   - A running instance will now remember the accounting file

   - Make use of start_pre() function

 - Logrotate script will now work for systemd users as well (bug #508512)

Gentoo-Bug: https://bugs.gentoo.org/508512
Package-Manager: Portage-2.3.5, Repoman-2.3.2

 sys-process/acct/Manifest                          |   1 +
 sys-process/acct/acct-6.6.4.ebuild                 |  44 +++++
 .../acct/files/acct-6.6.4-cross-compile.patch      | 220 +++++++++++++++++++++
 sys-process/acct/files/acct.confd-r1               |  11 ++
 sys-process/acct/files/acct.initd-r2               |  65 ++++++
 sys-process/acct/files/acct.logrotate-r1           |  18 ++
 6 files changed, 359 insertions(+)

diff --git a/sys-process/acct/Manifest b/sys-process/acct/Manifest
index 81a3d0153a7..1b984e9bdce 100644
--- a/sys-process/acct/Manifest
+++ b/sys-process/acct/Manifest
@@ -1,3 +1,4 @@
 DIST acct-6.5.5.tar.gz 747225 SHA256 
4163c87b9e92a73a65eaeadc6c41caa4626da782ff26d6e7a945edcc140a6fd5 SHA512 
6a36548cfe0e68829c94780aac4053f8a5840c5a704b88a9562758408dc64b4e26965743aec51ef02f7780efcfbf42d20805fecb12a68e7e1f279a1259151fb0
 WHIRLPOOL 
30c431dfe3af181770e261470090528fd21d41b45a234181ef0f1a62226979d4de38f851b1d5e200feba5b08acf30d2fe18a517f6096f3fcbc8e32dca9630be4
 DIST acct-6.6.1.tar.gz 2869677 SHA256 
554515611ef9299012b7510050868a48fc178ce1544947123ab46ec50230ffcb SHA512 
4bc3d6b41aeafcf8acfdd020057f1b6f15eea3589981387bca7e57aa8fe71d058e8def97f139dd2c11a1ac39f2d8b95bd103d31caff042cf716dd961b9588f5d
 WHIRLPOOL 
097b7c5f55aac40dd5d63b6ce80a1c2809241f3999c15d5c2c3d8f418f1e51b90ed3c5937655dafd9d702fc72b1d1a6faae870e0c2722c3716e097d5d3b98cd1
 DIST acct-6.6.2.tar.gz 852375 SHA256 
8ed47b2f893b08f0d67720880adbb48b835a826c314fa52fd52af1cee6870101 SHA512 
5942aa3d1faebb29bd6d6ff97c2ba8525dc5a9c85522c3f549ce0772042d3736e19126ddd7e10fe0681a6ac496b8d3aafda0894577a3b64c59f3b78fc222d2b3
 WHIRLPOOL 
135be28fb3b99ae5c4fb03d21d73a2bb2659d4e209a1444bb4741ae95761191ac74874f0476d3413c4221e2b321de2adf45240b2335b5cac92083d32ab547ebe
+DIST acct-6.6.4.tar.gz 853273 SHA256 
4c15bf2b58b16378bcc83f70e77d4d40ab0b194acf2ebeefdb507f151faa663f SHA512 
413aa446caece8fd773c92e2995bbaa034f63dd0ced521815a676c49f118e02982862b9c0ab7e60be5212c87d1e82ba6325bda212cf4857392a068d359a1e2c2
 WHIRLPOOL 
28c5405da1e19aa0690fef35e11bbae906e1b9f66724584edbc0b444fb138c71a1d0c9cc5738c249061e32ff0c84053168a0ffe743a0bf583395d4b47b4ae89f

diff --git a/sys-process/acct/acct-6.6.4.ebuild 
b/sys-process/acct/acct-6.6.4.ebuild
new file mode 100644
index 00000000000..46888474a25
--- /dev/null
+++ b/sys-process/acct/acct-6.6.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit 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=""
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-6.6.4-cross-compile.patch
+)
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       econf --enable-linux-multiformat
+}
+
+src_install() {
+       default
+       keepdir /var/account
+       newinitd "${FILESDIR}"/acct.initd-r2 acct
+       newconfd "${FILESDIR}"/acct.confd-r1 acct
+       systemd_dounit "${FILESDIR}"/acct.service
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}"/acct.logrotate-r1 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
+}

diff --git a/sys-process/acct/files/acct-6.6.4-cross-compile.patch 
b/sys-process/acct/files/acct-6.6.4-cross-compile.patch
new file mode 100644
index 00000000000..c4938d956dd
--- /dev/null
+++ b/sys-process/acct/files/acct-6.6.4-cross-compile.patch
@@ -0,0 +1,220 @@
+Don't generate files.h at build-time using an execution test.
+
+The *_LOC variables are never used in the build itself, but only in the
+built code; this means that they don't need to be known to ./configure at
+all.
+
+Since the previous method made acct not cross-compilable at all, this is
+much preferred.
+
+Author:  Diego Elio Pettenò <flamee...@gmail.com>
+Upstream: https://savannah.gnu.org/patch/?7473
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -69,11 +69,6 @@ SYS_LASTCOMM = @SYS_LASTCOMM@
+ SYS_AC = @SYS_AC@
+ SYS_SA = @SYS_SA@
+ 
+-WTMP_FILE_LOC = @WTMP_FILE_LOC@
+-ACCT_FILE_LOC = @ACCT_FILE_LOC@
+-SAVACCT_FILE_LOC = @SAVACCT_FILE_LOC@
+-USRACCT_FILE_LOC = @USRACCT_FILE_LOC@
+-
+ compare-ac: ac
+       @echo
+       @echo "Running tests for ac"
+--- a/configure.ac
++++ b/configure.ac
+@@ -229,97 +229,6 @@ AC_CHECK_HEADER(sys/acct.h,
+               AC_EGREP_HEADER([comp_t],[sys/acct.h],[AC_DEFINE(HAVE_COMP_T, 
1, Define if <sys/acct.h> uses the COMP_T type.)])
+   ) ]
+ )
+-dnl
+-dnl find out where utmp/pacct are stored
+-dnl
+-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <sys/types.h>
+-#include <stdint.h>   /* GNU/kFreeBSD */
+-#include <sys/acct.h>
+-#include <utmp.h>
+-
+-#ifndef WTMP_FILE
+-#  if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__linux__) \
+-        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
+-#    define WTMP_FILE "/var/log/account/wtmp"
+-#  else
+-#    if defined(sun) || defined(AMIX)
+-#      define WTMP_FILE "/var/adm/wtmp"
+-#    else
+-#      if defined(sgi) || defined(SVR4)
+-#        define WTMP_FILE "/usr/adm/wtmp"
+-#      else
+-#        define WTMP_FILE "/usr/adm/wtmp"
+-#      endif
+-#    endif
+-#  endif
+-#endif
+-
+-#ifndef ACCT_FILE
+-#  if defined(__FreeBSD__) || defined(__linux__) \
+-        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
+-#    define ACCT_FILE "/var/log/account/pacct"
+-#  else
+-#    if defined(__NetBSD__)
+-#      define ACCT_FILE "/var/log/account/acct"
+-#    else
+-#      if defined(sun) || defined(AMIX)
+-#        define ACCT_FILE "/var/adm/pacct"
+-#      else
+-#        if defined(sgi) || defined(SVR4) || defined(M_XENIX)
+-#          define ACCT_FILE "/usr/adm/pacct"
+-#        else
+-#          define ACCT_FILE "/usr/adm/acct"
+-#        endif
+-#      endif
+-#    endif
+-#  endif
+-#endif
+-
+-#ifndef SAVACCT_FILE
+-#  if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) \
+-        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
+-#    define SAVACCT_FILE "/var/log/account/savacct"
+-#  else
+-#    if defined(sun) || defined(AMIX)
+-#      define SAVACCT_FILE "/var/adm/savacct"
+-#    else
+-#      if defined(sgi) || defined(SVR4)
+-#        define SAVACCT_FILE "/usr/adm/savacct"
+-#      else
+-#        define SAVACCT_FILE "/usr/adm/savacct"
+-#      endif
+-#    endif
+-#  endif
+-#endif
+-
+-#ifndef USRACCT_FILE
+-#  if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) \
+-        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
+-#    define USRACCT_FILE "/var/log/account/usracct"
+-#  else
+-#    if defined(sun) || defined(AMIX)
+-#      define USRACCT_FILE "/var/adm/usracct"
+-#    else
+-#      if defined(sgi) || defined(SVR4)
+-#        define USRACCT_FILE "/usr/adm/usracct"
+-#      else
+-#        define USRACCT_FILE "/usr/adm/usracct"
+-#      endif
+-#    endif
+-#  endif
+-#endif
+-]], [[
+-  FILE *fp;
+-  fp = fopen ("locs", "w");
+-  fprintf (fp, "WTMP_FILE_LOC=%s\n", WTMP_FILE);
+-  fprintf (fp, "ACCT_FILE_LOC=%s\n", ACCT_FILE);
+-  fprintf (fp, "SAVACCT_FILE_LOC=%s\n", SAVACCT_FILE);
+-  fprintf (fp, "USRACCT_FILE_LOC=%s\n", USRACCT_FILE);
+-  fclose (fp);
+-]])],[. ./locs; rm locs],[echo "Error -- could not locate your wtmp and acct 
files."; exit 1],[echo "Sorry -- you cannot cross-compile this package 
(FIXME)."; exit 1 ])
+ 
+ dnl types
+ AC_TYPE_PID_T dnl for sys/acct.h
+@@ -363,12 +272,6 @@ AC_SUBST(ACCTON_MAN)
+ AC_SUBST(LASTCOMM_MAN)
+ AC_SUBST(SA_MAN)
+ 
+-dnl Substitutions for file locations
+-AC_SUBST(WTMP_FILE_LOC)
+-AC_SUBST(ACCT_FILE_LOC)
+-AC_SUBST(SAVACCT_FILE_LOC)
+-AC_SUBST(USRACCT_FILE_LOC)
+-
+ dnl Dump the makefiles and etc.
+ AC_CONFIG_FILES([Makefile lib/Makefile files.h version.h])
+ AC_OUTPUT
+--- a/files.h.in
++++ b/files.h.in
+@@ -30,6 +30,78 @@
+ 
+ #include <utmp.h>
+ 
++#ifndef WTMP_FILE
++#  if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__linux__) \
++        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
++#    define WTMP_FILE "/var/log/account/wtmp"
++#  else
++#    if defined(sun) || defined(AMIX)
++#      define WTMP_FILE "/var/adm/wtmp"
++#    else
++#      if defined(sgi) || defined(SVR4)
++#        define WTMP_FILE "/usr/adm/wtmp"
++#      else
++#        define WTMP_FILE "/usr/adm/wtmp"
++#      endif
++#    endif
++#  endif
++#endif
++
++#ifndef ACCT_FILE
++#  if defined(__FreeBSD__) || defined(__linux__) \
++        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
++#    define ACCT_FILE "/var/log/account/pacct"
++#  else
++#    if defined(__NetBSD__)
++#      define ACCT_FILE "/var/log/account/acct"
++#    else
++#      if defined(sun) || defined(AMIX)
++#        define ACCT_FILE "/var/adm/pacct"
++#      else
++#        if defined(sgi) || defined(SVR4) || defined(M_XENIX)
++#          define ACCT_FILE "/usr/adm/pacct"
++#        else
++#          define ACCT_FILE "/usr/adm/acct"
++#        endif
++#      endif
++#    endif
++#  endif
++#endif
++
++#ifndef SAVACCT_FILE
++#  if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) \
++        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
++#    define SAVACCT_FILE "/var/log/account/savacct"
++#  else
++#    if defined(sun) || defined(AMIX)
++#      define SAVACCT_FILE "/var/adm/savacct"
++#    else
++#      if defined(sgi) || defined(SVR4)
++#        define SAVACCT_FILE "/usr/adm/savacct"
++#      else
++#        define SAVACCT_FILE "/usr/adm/savacct"
++#      endif
++#    endif
++#  endif
++#endif
++
++#ifndef USRACCT_FILE
++#  if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) \
++        || defined(__FreeBSD_kernel__) || defined(__GLIBC__)
++#    define USRACCT_FILE "/var/log/account/usracct"
++#  else
++#    if defined(sun) || defined(AMIX)
++#      define USRACCT_FILE "/var/adm/usracct"
++#    else
++#      if defined(sgi) || defined(SVR4)
++#        define USRACCT_FILE "/usr/adm/usracct"
++#      else
++#        define USRACCT_FILE "/usr/adm/usracct"
++#      endif
++#    endif
++#  endif
++#endif
++
+ #define WTMP_FILE_LOC "@WTMP_FILE_LOC@"
+ #define ACCT_FILE_LOC "@ACCT_FILE_LOC@"
+ #define SAVACCT_FILE_LOC "@SAVACCT_FILE_LOC@"

diff --git a/sys-process/acct/files/acct.confd-r1 
b/sys-process/acct/files/acct.confd-r1
new file mode 100644
index 00000000000..4a05da34bcc
--- /dev/null
+++ b/sys-process/acct/files/acct.confd-r1
@@ -0,0 +1,11 @@
+# /etc/conf.d/acct
+
+# ACCT_LOG specifies the accounting logging file.
+# Remember to create it manually if it doesn't yet exist.
+#ACCT_LOG="/var/account/pacct"
+
+# REPORT_OPTS contains arguments for the "sa" command,
+# used for console-reporting.
+# Please run "sa --help" or "man sa" to get a description
+# of available options.
+#REPORT_OPTS="--sort-real-time --list-all-names --percentage"

diff --git a/sys-process/acct/files/acct.initd-r2 
b/sys-process/acct/files/acct.initd-r2
new file mode 100644
index 00000000000..4b3a5f3a50b
--- /dev/null
+++ b/sys-process/acct/files/acct.initd-r2
@@ -0,0 +1,65 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+ : ${ACCT_LOG:=/var/account/pacct}
+ : ${REPORT_OPTS:="--sort-real-time --list-all-names --percentage"}
+
+extra_started_commands="report"
+
+depend() {
+       need localmount
+}
+
+_checkconfig() {
+       if [ -z "${ACCT_LOG}" ]; then
+               eerror "No accounting file specified!"
+               return 1
+       fi
+
+       checkpath -f -m 600 "${ACCT_LOG}"
+}
+
+_get_service_value() {
+       local _name=$1
+
+       local _default_value=
+       if [ -n "${2}" ]; then
+               _default_value=$2
+       fi
+
+       local _service_value=$(service_get_value ${_name})
+       if [ -n "${_service_value}" ]; then
+               echo "${_service_value}"
+       else
+               echo "${_default_value}"
+       fi
+
+       return 0
+}
+
+ACCT_LOG=$(_get_service_value ACCT_LOG "${ACCT_LOG}")
+
+start_pre() {
+       _checkconfig || return 1
+}
+
+start() {
+       ebegin "Starting accounting"
+       accton "${ACCT_LOG}" >/dev/null
+       eend $?
+}
+
+start_post() {
+       service_set_value ACCT_LOG "${ACCT_LOG}"
+}
+
+stop() {
+       ebegin "Stopping accounting"
+       accton off >/dev/null
+       eend $?
+}
+
+report() {
+       sa ${REPORT_OPTS} "${ACCT_LOG}"
+}

diff --git a/sys-process/acct/files/acct.logrotate-r1 
b/sys-process/acct/files/acct.logrotate-r1
new file mode 100644
index 00000000000..3587e5acfa6
--- /dev/null
+++ b/sys-process/acct/files/acct.logrotate-r1
@@ -0,0 +1,18 @@
+# Logrotate file for acct
+
+/var/account/pacct {
+       compress
+       delaycompress
+       notifempty
+       daily
+       rotate 31
+       create 0600 root root
+       missingok
+       postrotate
+               if type -p systemctl 2>&1 1>/dev/null && systemctl 
is-system-running 2>&1 1>/dev/null ; then
+                       systemctl try-restart acct 1>/dev/null
+               else
+                       /etc/init.d/acct --quiet --ifstarted restart
+               fi
+       endscript
+}

Reply via email to