diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2017-07-27 16:03:48 +0200 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2017-07-27 16:04:04 +0200 |
commit | ce3320b8f7c1530d7438cd4774a72a75266e1c0b (patch) | |
tree | 0dd7476d4c5a0960a47236ca065f798fb32298c8 /sys-process/acct | |
parent | dev-php/pecl-ssh2: Upstream recommends libssh2 have -gcrypt (diff) | |
download | gentoo-ce3320b8f7c1530d7438cd4774a72a75266e1c0b.tar.gz gentoo-ce3320b8f7c1530d7438cd4774a72a75266e1c0b.tar.bz2 gentoo-ce3320b8f7c1530d7438cd4774a72a75266e1c0b.zip |
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
Diffstat (limited to 'sys-process/acct')
-rw-r--r-- | sys-process/acct/Manifest | 1 | ||||
-rw-r--r-- | sys-process/acct/acct-6.6.4.ebuild | 44 | ||||
-rw-r--r-- | sys-process/acct/files/acct-6.6.4-cross-compile.patch | 220 | ||||
-rw-r--r-- | sys-process/acct/files/acct.confd-r1 | 11 | ||||
-rw-r--r-- | sys-process/acct/files/acct.initd-r2 | 65 | ||||
-rw-r--r-- | sys-process/acct/files/acct.logrotate-r1 | 18 |
6 files changed, 359 insertions, 0 deletions
diff --git a/sys-process/acct/Manifest b/sys-process/acct/Manifest index 81a3d0153a76..1b984e9bdceb 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 000000000000..46888474a25d --- /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 000000000000..c4938d956dd3 --- /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ò <flameeyes@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 000000000000..4a05da34bcc5 --- /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 000000000000..4b3a5f3a50b6 --- /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 000000000000..3587e5acfa68 --- /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 +} |