app-admin/logrotate: add LFS support #559572
authorMike Frysinger <vapier@gentoo.org>
Sat, 12 Sep 2015 03:39:15 +0000 (23:39 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 12 Sep 2015 03:40:45 +0000 (23:40 -0400)
This way we properly handle 2GiB+ log files.

app-admin/logrotate/files/logrotate-3.9.1-lfs.patch [new file with mode: 0644]
app-admin/logrotate/logrotate-3.9.1-r1.ebuild [new file with mode: 0644]

diff --git a/app-admin/logrotate/files/logrotate-3.9.1-lfs.patch b/app-admin/logrotate/files/logrotate-3.9.1-lfs.patch
new file mode 100644 (file)
index 0000000..57449d0
--- /dev/null
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/559572
+
+make sure we can handle large files properly (like log files over 2GiB)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -10,6 +10,8 @@
+ AC_STRUCT_ST_BLKSIZE
+ AC_STRUCT_ST_BLOCKS
++AC_SYS_LARGEFILE
++
+ AC_CHECK_LIB([popt],[poptParseArgvString],,
+   AC_MSG_ERROR([libpopt required but not found]))
diff --git a/app-admin/logrotate/logrotate-3.9.1-r1.ebuild b/app-admin/logrotate/logrotate-3.9.1-r1.ebuild
new file mode 100644 (file)
index 0000000..44e6437
--- /dev/null
@@ -0,0 +1,83 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools eutils toolchain-funcs flag-o-matic
+
+DESCRIPTION="Rotates, compresses, and mails system logs"
+HOMEPAGE="https://fedorahosted.org/logrotate/"
+SRC_URI="https://fedorahosted.org/releases/l/o/logrotate/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="acl +cron selinux"
+
+CDEPEND="
+       >=dev-libs/popt-1.5
+       selinux? (
+               sys-libs/libselinux
+       )
+       acl? ( virtual/acl )"
+
+DEPEND="${CDEPEND}
+       >=sys-apps/sed-4"
+
+RDEPEND="${CDEPEND}
+       selinux? ( sec-policy/selinux-logrotate )
+       cron? ( virtual/cron )"
+
+install_cron_file() {
+       exeinto /etc/cron.daily
+       newexe "${S}"/examples/logrotate.cron "${PN}"
+}
+
+src_prepare() {
+       epatch \
+               "${FILESDIR}"/${P}-ignore-hidden.patch \
+               "${FILESDIR}"/${P}-fbsd.patch \
+               "${FILESDIR}"/${P}-noasprintf.patch \
+               "${FILESDIR}"/${P}-atomic-create.patch \
+               "${FILESDIR}"/${P}-Werror.patch \
+               "${FILESDIR}"/${P}-lfs.patch
+       eautoreconf
+}
+
+src_configure() {
+       econf $(use_with acl) $(use_with selinux)
+}
+
+src_compile() {
+       emake ${myconf} RPM_OPT_FLAGS="${CFLAGS}"
+}
+
+src_test() {
+       emake test
+}
+
+src_install() {
+       insinto /usr
+       dosbin logrotate
+       doman logrotate.8
+       dodoc CHANGES examples/logrotate*
+
+       insinto /etc
+       doins "${FILESDIR}"/logrotate.conf
+
+       use cron && install_cron_file
+
+       keepdir /etc/logrotate.d
+}
+
+pkg_postinst() {
+       if [[ -z ${REPLACING_VERSIONS} ]] ; then
+               elog "If you wish to have logrotate e-mail you updates, please"
+               elog "emerge virtual/mailx and configure logrotate in"
+               elog "/etc/logrotate.conf appropriately"
+               elog
+               elog "Additionally, /etc/logrotate.conf may need to be modified"
+               elog "for your particular needs.  See man logrotate for details."
+       fi
+}