From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- app-admin/cronolog/Manifest | 12 + app-admin/cronolog/cronolog-1.6.2-r5.ebuild | 26 ++ .../1.6.2-patches/cronolog-define-strptime.patch | 11 + .../files/1.6.2-patches/cronolog-doc.patch | 12 + .../files/1.6.2-patches/cronolog-getopt-long.patch | 24 ++ .../files/1.6.2-patches/cronolog-large-file.patch | 27 ++ .../1.6.2-patches/cronolog-missing-symlink.patch | 11 + .../files/1.6.2-patches/cronolog-setugid.patch | 390 +++++++++++++++++++++ .../files/1.6.2-patches/cronolog-sigusr1.patch | 46 +++ .../files/1.6.2-patches/cronolog-strftime.patch | 26 ++ .../cronolog/files/cronolog-1.6.2-umask.patch | 86 +++++ app-admin/cronolog/metadata.xml | 16 + 12 files changed, 687 insertions(+) create mode 100644 app-admin/cronolog/Manifest create mode 100644 app-admin/cronolog/cronolog-1.6.2-r5.ebuild create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-define-strptime.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-doc.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-getopt-long.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-large-file.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-missing-symlink.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-setugid.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-sigusr1.patch create mode 100644 app-admin/cronolog/files/1.6.2-patches/cronolog-strftime.patch create mode 100644 app-admin/cronolog/files/cronolog-1.6.2-umask.patch create mode 100644 app-admin/cronolog/metadata.xml (limited to 'app-admin/cronolog') diff --git a/app-admin/cronolog/Manifest b/app-admin/cronolog/Manifest new file mode 100644 index 000000000000..f295cfda33bc --- /dev/null +++ b/app-admin/cronolog/Manifest @@ -0,0 +1,12 @@ +AUX 1.6.2-patches/cronolog-define-strptime.patch 302 BLAKE2B 304b7ae3133268d18533457632e57aed6436a100acc1a31cdc8acb7d0f5312373474c6da7cf66d56b220173429612f15023d3d255214f4a4cdaa58ab5876e190 SHA512 f2bd5b109ef4c3656f31f516364defaad899a16f279d867a1548e7c797b30691daef49b7bee49e6ce15be3903aea09c3b5cf04cf077797d066ada9ac68e6335a +AUX 1.6.2-patches/cronolog-doc.patch 406 BLAKE2B 311f67dbc1bc7832c178a54e923583ec4808d1c1b6204bd7313ef9f5edb6ea985833f26d4a8819c6f5a291e23b638512b6643125dde7d2a79cce048d99aa58a0 SHA512 a33eda2c8d9cb1c4f72ec6fa80de9748789cb1e754f6448f53c12df601d78f5284c66d1ed476cd11435fb83a4d834cdaea85f0a4d1421fb1796197a871860cfa +AUX 1.6.2-patches/cronolog-getopt-long.patch 1080 BLAKE2B 887e6366498306ea735aa795827a3f8e91185a414616c96f57cfdbb873b4a8fe9d333d17701b50c21319655bb1883a278c95c4f92a4a064e61ff1627d426b81f SHA512 84f784dff035200a15ade43e5379bbaadf8ac24216c2dd157d2f3f2e30575d0bda8357b0d2661f1d13ba1b446e88b4bbe2805b46fd8af80c5f6af4a47bc03f4e +AUX 1.6.2-patches/cronolog-large-file.patch 823 BLAKE2B 830cad8a5ea427a6d7351cd2fefb4be127bca84847c61d82d2b76380a781dd52ef0dbdb6d23cb5b7315ea8e151769c1de597a49b838e597c629afbc98e01731b SHA512 23d2579941d57bab47e73c3f258e54074b87bd5306877d8139b3a777de97be8d24c994142d6a38163048d02aa550096264e076fd47b3e5b4d5599d16f48edd3e +AUX 1.6.2-patches/cronolog-missing-symlink.patch 326 BLAKE2B e4f442f3d14f96b239ef10db3c7b9cb2512c6012c82588701df0271739a034c9924f413159f07903877b5d3f30014690a4e39a46cecb8cb0b75363cfbb6fae72 SHA512 6617e7ccde6fd97e68147157b1c1341e5d4d0ad2ffe69225d543990ef5dba3bfea2f79c3a351d696470a70e0da57595d3eea194cc53aea81d3926b0f3b2eabad +AUX 1.6.2-patches/cronolog-setugid.patch 12345 BLAKE2B 1ecf5ecf5611a83a70727696accf268222ce12eb788ed3e636d2c7c4699248a1fe567b8e474032963b25c51809fa5142fb9e4afc319396864924e75ce097568c SHA512 ed9048ceb5e9dcb86c34f34e0f2619ec85a1789883939ca99875ec61b3df711e6793204363445c8df3a13298aaa079fadde76f0a9e87b62b8bc44f103143a9e0 +AUX 1.6.2-patches/cronolog-sigusr1.patch 1154 BLAKE2B a5506f1252a18eeb805c8703baadffc42d8d358cba9ec887b00fb0e8fcf436dcfa0912490d3e31869d4f0855e9057a319212a3ef4ace58da6109091bbbc25472 SHA512 8d31f0032581b3295b168b5af4755f0ac5793869d7472a42c66ebe2b0ac7ecf03b88aa6459341bcbc5f6dfa3265f205844fe1a1b4e1256f957f12b5577ef2ed6 +AUX 1.6.2-patches/cronolog-strftime.patch 435 BLAKE2B a4f817a743df2a1193609bb16e9d82ab932875bfe7e34c90af3289be8b01783ce7da9a8c8c9ee55d2db413e20efd264707de11b6669f5fd32445f8508a18aeda SHA512 8c226b70c7b026ce5e7400798d0e2016ed984df04bd66b6a2358ce445323be930b5f7951b879545c8f075761cc2b5062f9ccc4b759f2e586a4c8943efa4ee914 +AUX cronolog-1.6.2-umask.patch 2366 BLAKE2B 84134bf197929689edcb95605c89732175004771b8cbe0b7de84b7608444e1b37b447d3f37c5db3645c22d74a6e62d150a85cdb4d6487f92d32632d6646ef2ce SHA512 da3f7d84ce365edce396bc43ec9b469973301c6a28f3eb56b7f019dcb65fb7ceec981f92c1382542d01e4b6e49e32ff4fe283aed9dbc7bb30c6780775acf39b3 +DIST cronolog-1.6.2.tar.gz 133591 BLAKE2B 5a78d0136a834849c6f9fc9f41341808295fe38919ac795d5329c46f353b5fadebc5819031a07c2c2a780d54957d16edb9e8935e15a2ed77eb13a2d6c7d2832d SHA512 786135aaa1359605840effb9a755c500970098ca32c1c4976c62f9d7481d24cecefe223ce8dcc34a139427259a6f3ba1c435c700a72ee07ed68ffc7f2d36e4ea +EBUILD cronolog-1.6.2-r5.ebuild 539 BLAKE2B d1ce1f7f0e51a85ff4b36fcfbbe270a473d4a6b896e8cffc98e4ff5caf41e42dc3f621303cbab8d5859c2b7f20bc0de0ed83e07304dff2dcdc6c05138da54e3a SHA512 3fbac862e8f8410d5dc69c4efc134838f3070a8b255f655b681a303506ff1ea5d65b532ea12ef543dae1e1edc907e32d32c502c28000f2d29466997b05fc7618 +MISC metadata.xml 719 BLAKE2B aeabc972c2347a9a39d7073165aeebb1b307f81c52db0e294405e10cf903b4058a0d2fbab64cc4f81b1013c6b39fe1ceead0725b32ee9bfee1fa9e307499deee SHA512 d5b5452b8105d8273328ee8ab1c95674686a00862a578f8171c4799791ceb131ac0204693a3d65ce6136d9cbea114f7f899a85669bde9b76b8c8e800a4c4c75f diff --git a/app-admin/cronolog/cronolog-1.6.2-r5.ebuild b/app-admin/cronolog/cronolog-1.6.2-r5.ebuild new file mode 100644 index 000000000000..f8b32bd5968e --- /dev/null +++ b/app-admin/cronolog/cronolog-1.6.2-r5.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools + +DESCRIPTION="Log rotation software" +HOMEPAGE="https://github.com/fordmason/cronolog" +SRC_URI="http://cronolog.org/download/${P}.tar.gz" + +LICENSE="GPL-2+ Apache-1.0" +SLOT="0" +KEYWORDS="amd64 ~arm ppc x86" + +PATCHES=( + "${FILESDIR}"/${PV}-patches + # rename and move into ${PV}-patches after -r3 removal + "${FILESDIR}"/${P}-umask.patch +) + +src_prepare() { + default + mv configure.{in,ac} || die + eautoreconf +} diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-define-strptime.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-define-strptime.patch new file mode 100644 index 000000000000..26ac2a40319c --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-define-strptime.patch @@ -0,0 +1,11 @@ +diff -urb cronolog-1.6.2/src/cronoutils.c cronolog-1.6.2-patched/src/cronoutils.c +--- a/src/cronoutils.c 2001-05-03 09:43:21.000000000 -0700 ++++ b/src/cronoutils.c 2008-01-05 22:08:42.000000000 -0800 +@@ -69,6 +69,8 @@ + * + */ + ++#define _GNU_SOURCE ++ + #include "cronoutils.h" + extern char *tzname[2]; diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-doc.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-doc.patch new file mode 100644 index 000000000000..b4b68d5690a9 --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-doc.patch @@ -0,0 +1,12 @@ +diff -ur cronolog-1.6.2/doc/cronolog.1m cronolog-1.6.2/doc/cronolog.1m +--- a/doc/cronolog.1m 2001-05-04 01:44:55.000000000 -0700 ++++ b/doc/cronolog.1m 2008-01-06 00:43:33.000000000 -0800 +@@ -77,7 +77,7 @@ + to the current log file. + .\" + .IP "-P \fINAME\fP" +-.IP "--prevlink=\fINAME\fP" ++.IP "--prev-symlink=\fINAME\fP" + maintain a symbolic link from + .I NAME + to the previous log file. Requires that the diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-getopt-long.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-getopt-long.patch new file mode 100644 index 000000000000..b7eb5c1760c4 --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-getopt-long.patch @@ -0,0 +1,24 @@ +diff -urp cronolog-1.6.2/src/cronolog.c cronolog-1.6.2/src/cronolog.c +--- a/src/cronolog.c 2001-05-03 09:42:48.000000000 -0700 ++++ b/src/cronolog.c 2008-01-05 23:54:53.000000000 -0800 +@@ -139,7 +139,8 @@ struct option long_options[] = + { "delay", required_argument, NULL, 'd' }, + { "once-only", no_argument, NULL, 'o' }, + { "help", no_argument, NULL, 'h' }, +- { "version", no_argument, NULL, 'V' } ++ { "version", no_argument, NULL, 'V' }, ++ { NULL, 0, NULL, 0 } + }; + #endif + +diff -urp cronolog-1.6.2/src/cronotest.c cronolog-1.6.2/src/cronotest.c +--- cronolog-1.6.2/src/cronotest.c 2001-05-03 09:26:44.000000000 -0700 ++++ cronolog-1.6.2/src/cronotest.c 2008-01-06 00:02:24.000000000 -0800 +@@ -112,7 +112,8 @@ struct option long_options[] = + { "test-subdirs", required_argument, NULL, 'D' }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'V' }, +- { "verbose", no_argument, NULL, 'v' } ++ { "verbose", no_argument, NULL, 'v' }, ++ { NULL, 0, NULL, 0 } + }; diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-large-file.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-large-file.patch new file mode 100644 index 000000000000..25e488f061c0 --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-large-file.patch @@ -0,0 +1,27 @@ +--- a/src/cronolog.c 2003-10-13 12:35:17.000000000 +0000 ++++ b/src/cronolog.c 2003-10-13 12:36:36.000000000 +0000 +@@ -82,6 +82,8 @@ + * written to "file" (e.g. /dev/console) or to stderr if "file" is "-". + */ + ++#define _GNU_SOURCE 1 ++ + #include "cronoutils.h" + #include "getopt.h" + +@@ -394,13 +396,13 @@ + timestamp(*pnext_period), *pnext_period, + *pnext_period - time_now)); + +- log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE); ++ log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, FILE_MODE); + + #ifndef DONT_CREATE_SUBDIRS + if ((log_fd < 0) && (errno == ENOENT)) + { + create_subdirs(pfilename); +- log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND, FILE_MODE); ++ log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, FILE_MODE); + } + #endif + diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-missing-symlink.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-missing-symlink.patch new file mode 100644 index 000000000000..974c69faa74a --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-missing-symlink.patch @@ -0,0 +1,11 @@ +--- a/src/cronoutils.c 2003-10-13 12:44:59.000000000 +0000 ++++ b/src/cronoutils.c 2003-10-13 12:45:08.000000000 +0000 +@@ -199,7 +199,7 @@ + { + unlink(prevlinkname); + } +- if (stat(linkname, &stat_buf) == 0) ++ if (lstat(linkname, &stat_buf) == 0) + { + if (prevlinkname) { + rename(linkname, prevlinkname); diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-setugid.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-setugid.patch new file mode 100644 index 000000000000..8fe4c0f12396 --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-setugid.patch @@ -0,0 +1,390 @@ +diff -Naur cronolog-1.6.2/configure cronolog-1.6.2-new/configure +--- a/configure Thu May 3 17:44:22 2001 ++++ b/configure Mon Jun 3 00:38:32 2002 +@@ -1757,15 +1757,49 @@ + + fi + ++echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 ++echo "configure:1762: checking for uid_t in sys/types.h" >&5 ++if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "uid_t" >/dev/null 2>&1; then ++ rm -rf conftest* ++ ac_cv_type_uid_t=yes ++else ++ rm -rf conftest* ++ ac_cv_type_uid_t=no ++fi ++rm -f conftest* ++ ++fi ++ ++echo "$ac_t""$ac_cv_type_uid_t" 1>&6 ++if test $ac_cv_type_uid_t = no; then ++ cat >> confdefs.h <<\EOF ++#define uid_t int ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define gid_t int ++EOF ++ ++fi ++ + + + echo $ac_n "checking for strftime""... $ac_c" 1>&6 +-echo "configure:1764: checking for strftime" >&5 ++echo "configure:1798: checking for strftime" >&5 + if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_strftime=yes" + else +@@ -1810,7 +1844,7 @@ + echo "$ac_t""no" 1>&6 + # strftime is in -lintl on SCO UNIX. + echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 +-echo "configure:1814: checking for strftime in -lintl" >&5 ++echo "configure:1848: checking for strftime in -lintl" >&5 + ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1818,7 +1852,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -1856,12 +1890,12 @@ + fi + + echo $ac_n "checking for vprintf""... $ac_c" 1>&6 +-echo "configure:1860: checking for vprintf" >&5 ++echo "configure:1894: checking for vprintf" >&5 + if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_vprintf=yes" + else +@@ -1908,12 +1942,12 @@ + + if test "$ac_cv_func_vprintf" != yes; then + echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 +-echo "configure:1912: checking for _doprnt" >&5 ++echo "configure:1946: checking for _doprnt" >&5 + if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func__doprnt=yes" + else +@@ -1963,12 +1997,12 @@ + for ac_func in mkdir mktime putenv + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:1967: checking for $ac_func" >&5 ++echo "configure:2001: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -2018,12 +2052,12 @@ + for ac_func in strptime localtime_r + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2022: checking for $ac_func" >&5 ++echo "configure:2056: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +diff -Naur cronolog-1.6.2/configure.in cronolog-1.6.2-new/configure.in +--- cronolog-1.6.2/configure.in Thu May 3 17:30:50 2001 ++++ cronolog-1.6.2-new/configure.in Mon Jun 3 00:38:32 2002 +@@ -56,6 +56,7 @@ + AC_C_CONST + AC_TYPE_SIZE_T + AC_STRUCT_TM ++AC_TYPE_UID_T + + dnl Checks for library functions. + +diff -Naur cronolog-1.6.2/doc/cronolog.1m cronolog-1.6.2-new/doc/cronolog.1m +--- cronolog-1.6.2/doc/cronolog.1m Fri May 4 09:44:55 2001 ++++ cronolog-1.6.2-new/doc/cronolog.1m Mon Jun 3 00:39:10 2002 +@@ -89,6 +89,20 @@ + .IP --help + print a help message and then exit. + .\" ++.IP "-u \fIUSER\fP" ++.IP "--set-uid=\fIUSER\fP" ++sets the user ID of the cronolog process before any logs are opened. ++\fIUSER\fP can be a username or a numeric user ID. If \fIUSER\fP ++contains solely digits, it will be assumed to be a numeric user ID; ++otherwise, it will be assumed to be a username. ++.\" ++.IP "-g \fIGROUP\fP" ++.IP "--set-gid=\fIGROUP\fP" ++sets the group ID of the cronolog process before any logs are opened. ++\fIGROUP\fP can be a group name or a numeric group ID. If \fIGROUP\fP ++contains solely digits, it will be assumed to be a numeric group ID; ++otherwise, it will be assumed to be a group name. ++.\" + .IP "-p \fIPERIOD\fP" + .IP "--period=\fIPERIOD\fP" + specifies the period explicitly as an optional digit string followed +diff -Naur cronolog-1.6.2/src/cronolog.c cronolog-1.6.2-new/src/cronolog.c +--- cronolog-1.6.2/src/cronolog.c Thu May 3 17:42:48 2001 ++++ cronolog-1.6.2-new/src/cronolog.c Mon Jun 3 00:38:32 2002 +@@ -100,6 +100,12 @@ + #define VERSION_MSG "cronolog version 0.1\n" + #endif + ++#ifndef _WIN32 ++#define SETUGID_USAGE " -u USER, --set-uid=USER change to USER before doing anything (name or UID)\n" \ ++ " -g GROUP, --set-gid=GROUP change to GROUP before doing anything (name or GID)\n" ++#else ++#define SETUGID_USAGE "" ++#endif + + #define USAGE_MSG "usage: %s [OPTIONS] logfile-spec\n" \ + "\n" \ +@@ -117,12 +123,17 @@ + " -e, --european European date formats (default)\n" \ + " -s, --start-time=TIME starting time\n" \ + " -z TZ, --time-zone=TZ use TZ for timezone\n" \ ++ SETUGID_USAGE \ + " -V, --version print version number, then exit\n" + + + /* Definition of the short and long program options */ + ++#ifndef _WIN32 ++char *short_options = "ad:eop:s:z:H:P:S:l:hVx:u:g:"; ++#else + char *short_options = "ad:eop:s:z:H:P:S:l:hVx:"; ++#endif + + #ifndef _WIN32 + struct option long_options[] = +@@ -137,6 +148,8 @@ + { "link", required_argument, NULL, 'l' }, + { "period", required_argument, NULL, 'p' }, + { "delay", required_argument, NULL, 'd' }, ++ { "set-uid", required_argument, NULL, 'u' }, ++ { "set-gid", required_argument, NULL, 'g' }, + { "once-only", no_argument, NULL, 'o' }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'V' } +@@ -160,6 +173,12 @@ + char *template; + char *linkname = NULL; + char *prevlinkname = NULL; ++#ifndef _WIN32 ++ uid_t new_uid = 0; ++ gid_t new_gid = 0; ++ int change_uid = 0; ++ int change_gid = 0; ++#endif + mode_t linktype = 0; + int n_bytes_read; + int ch; +@@ -234,6 +253,16 @@ + } + break; + ++#ifndef _WIN32 ++ case 'u': ++ new_uid = parse_uid(optarg, argv[0]); ++ change_uid = 1; ++ break; ++ case 'g': ++ new_gid = parse_gid(optarg, argv[0]); ++ change_gid = 1; ++ break; ++#endif + case 'o': + periodicity = ONCE_ONLY; + break; +@@ -265,6 +294,17 @@ + fprintf(stderr, USAGE_MSG, argv[0]); + exit(1); + } ++ ++#ifndef _WIN32 ++ if (change_gid && setgid(new_gid) == -1) { ++ fprintf(stderr, "setgid: unable to change to gid: %d\n", new_gid); ++ exit(1); ++ } ++ if (change_uid && setuid(new_uid) == -1) { ++ fprintf(stderr, "setuid: unable to change to uid: %d\n", new_uid); ++ exit(1); ++ } ++#endif + + DEBUG((VERSION_MSG "\n")); + +diff -Naur cronolog-1.6.2/src/cronoutils.c cronolog-1.6.2-new/src/cronoutils.c +--- cronolog-1.6.2/src/cronoutils.c Thu May 3 17:43:21 2001 ++++ cronolog-1.6.2-new/src/cronoutils.c Mon Jun 3 00:38:32 2002 +@@ -710,4 +710,50 @@ + return retval; + } + +- ++ ++#ifndef _WIN32 ++/* Turn a string specifying either a username or UID into an actual ++ * uid_t for use in setuid(). A string is assumed to be a UID if ++ * it contains only decimal digits. */ ++uid_t ++parse_uid(char *user, char *argv0) ++{ ++ char *probe = user; ++ struct passwd *ent; ++ ++ while (*probe && isdigit(*probe)) { ++ probe++; ++ } ++ if (!(*probe)) { ++ return atoi(user); ++ } ++ if (!(ent = getpwnam(user))) { ++ fprintf(stderr, "%s: Bad username %s\n", argv0, user); ++ exit(1); ++ } ++ return (ent->pw_uid); ++} ++ ++ ++/* Turn a string specifying either a group name or GID into an actual ++ * gid_t for use in setgid(). A string is assumed to be a GID if ++ * it contains only decimal digits. */ ++gid_t ++parse_gid(char *group, char *argv0) ++{ ++ char *probe = group; ++ struct group *ent; ++ ++ while (*probe && isdigit(*probe)) { ++ probe++; ++ } ++ if (!(*probe)) { ++ return atoi(group); ++ } ++ if (!(ent = getgrnam(group))) { ++ fprintf(stderr, "%s: Bad group name %s\n", argv0, group); ++ exit(1); ++ } ++ return (ent->gr_gid); ++} ++#endif /* _WIN32 */ +diff -Naur cronolog-1.6.2/src/cronoutils.h cronolog-1.6.2-new/src/cronoutils.h +--- cronolog-1.6.2/src/cronoutils.h Thu May 3 17:40:12 2001 ++++ cronolog-1.6.2-new/src/cronoutils.h Mon Jun 3 00:38:32 2002 +@@ -84,6 +84,8 @@ + #include + #ifndef _WIN32 + #include ++#include ++#include + #else + #include + #include +@@ -172,7 +174,8 @@ + void print_debug_msg(char *msg, ...); + time_t parse_time(char *time_str, int); + char *timestamp(time_t thetime); +- ++uid_t parse_uid(char *user, char *argv0); ++gid_t parse_gid(char *group, char *argv0); + + /* Global variables */ + diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-sigusr1.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-sigusr1.patch new file mode 100644 index 000000000000..e7cc8be2c425 --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-sigusr1.patch @@ -0,0 +1,46 @@ +*** a/src/cronolog.c.orig 2001-05-03 17:42:48.000000000 +0100 +--- b/src/cronolog.c 2003-08-15 14:03:17.000000000 +0100 +*************** +*** 84,95 **** +--- 84,97 ---- + + #include "cronoutils.h" + #include "getopt.h" ++ #include + + + /* Forward function declaration */ + + int new_log_file(const char *, const char *, mode_t, const char *, + PERIODICITY, int, int, char *, size_t, time_t, time_t *); ++ void terminate_self(int); + + + /* Definition of version and usage messages */ +*************** +*** 306,311 **** +--- 308,317 ---- + DEBUG(("Rotation period is per %d %s\n", period_multiple, periods[periodicity])); + + ++ /* set up signal handlers to catch USR1 and HUP when restarting Apache */ ++ signal(SIGUSR1, terminate_self); ++ signal(SIGHUP, terminate_self); ++ + /* Loop, waiting for data on standard input */ + + for (;;) +*************** +*** 416,418 **** +--- 422,432 ---- + } + return log_fd; + } ++ ++ void terminate_self(int sig) ++ { ++ time_t time_now = time(NULL); ++ DEBUG(("%s (%d): received signal USR1; terminating.\n", ++ timestamp(time_now), time_now)); ++ exit(6); ++ } diff --git a/app-admin/cronolog/files/1.6.2-patches/cronolog-strftime.patch b/app-admin/cronolog/files/1.6.2-patches/cronolog-strftime.patch new file mode 100644 index 000000000000..12d561776f8c --- /dev/null +++ b/app-admin/cronolog/files/1.6.2-patches/cronolog-strftime.patch @@ -0,0 +1,26 @@ +--- a/src/cronoutils.c Mon Dec 20 00:34:44 1999 ++++ b/src/cronoutils.c Mon Feb 11 03:19:32 2002 +@@ -204,9 +204,21 @@ + { + if (ch == '%') + { +- ch = *spec++; +- if (!ch) break; ++ do { ++ ch = *spec++; ++ if (!ch) break; + ++ switch(ch) { ++ case '_': ++ case '-': ++ case '0': ++ continue; ++ } ++ break; ++ } while(1); ++ ++ if(!ch) break; ++ + switch (ch) + { + case 'y': /* two digit year */ diff --git a/app-admin/cronolog/files/cronolog-1.6.2-umask.patch b/app-admin/cronolog/files/cronolog-1.6.2-umask.patch new file mode 100644 index 000000000000..446c1460bee1 --- /dev/null +++ b/app-admin/cronolog/files/cronolog-1.6.2-umask.patch @@ -0,0 +1,86 @@ +Add umask support to cronolog. + +Patch-by: Mike Doty +Signed-off-By: Robin H. Johnson + +--- a/src/cronolog.c.orig 2010-01-22 16:49:41.000000000 -0800 ++++ b/src/cronolog.c 2010-01-22 17:31:50.000000000 -0800 +@@ -106,7 +106,8 @@ + + #ifndef _WIN32 + #define SETUGID_USAGE " -u USER, --set-uid=USER change to USER before doing anything (name or UID)\n" \ +- " -g GROUP, --set-gid=GROUP change to GROUP before doing anything (name or GID)\n" ++ " -g GROUP, --set-gid=GROUP change to GROUP before doing anything (name or GID)\n" \ ++ " -U OCTAL, --umask=OCTAL sets umask of file/directory creation\n" + #else + #define SETUGID_USAGE "" + #endif +@@ -134,7 +135,7 @@ + /* Definition of the short and long program options */ + + #ifndef _WIN32 +-char *short_options = "ad:eop:s:z:H:P:S:l:hVx:u:g:"; ++char *short_options = "ad:eop:s:z:H:P:S:l:hVx:u:g:U:"; + #else + char *short_options = "ad:eop:s:z:H:P:S:l:hVx:"; + #endif +@@ -157,10 +158,16 @@ + { "once-only", no_argument, NULL, 'o' }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'V' }, ++ { "umask", required_argument, NULL, 'U' }, + { NULL, 0, NULL, 0 } + }; + #endif + ++#ifndef _WIN32 ++static mode_t saved_umask = 0; ++static mode_t new_umask = 0; ++#endif ++ + /* Main function. + */ + int +@@ -193,6 +200,11 @@ + int log_fd = -1; + + #ifndef _WIN32 ++ new_umask=umask(0); ++ umask(new_umask); ++#endif ++ ++#ifndef _WIN32 + while ((ch = getopt_long(argc, argv, short_options, long_options, NULL)) != EOF) + #else + while ((ch = getopt(argc, argv, short_options)) != EOF) +@@ -267,6 +279,9 @@ + new_gid = parse_gid(optarg, argv[0]); + change_gid = 1; + break; ++ case 'U': ++ new_umask = (mode_t)strtol(optarg, NULL, 8); ++ break; + #endif + case 'o': + periodicity = ONCE_ONLY; +@@ -443,6 +458,9 @@ + timestamp(*pnext_period), *pnext_period, + *pnext_period - time_now)); + ++#ifndef _WIN32 ++ saved_umask=umask(new_umask); ++#endif + log_fd = open(pfilename, O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, FILE_MODE); + + #ifndef DONT_CREATE_SUBDIRS +@@ -459,6 +477,10 @@ + exit(2); + } + ++#ifndef _WIN32 ++ umask(saved_umask); ++#endif ++ + if (linkname) + { + create_link(pfilename, linkname, linktype, prevlinkname); diff --git a/app-admin/cronolog/metadata.xml b/app-admin/cronolog/metadata.xml new file mode 100644 index 000000000000..0e5ed8f4355e --- /dev/null +++ b/app-admin/cronolog/metadata.xml @@ -0,0 +1,16 @@ + + + + + + Cronolog is a simple filter program that reads log file entries from + standard input and writes each entry to the output file specified by a + filename template and the current date and time. When the expanded + filename changes, the current file is closed and a new one opened. + cronolog is intended to be used in conjunction with a Web server, such + as Apache, to split the access log into daily or monthly logs. + + + fordmason/cronolog + + -- cgit v1.2.3