diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..97004e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/metadata/md5-cache/ diff --git a/dev-libs/log4c/Manifest b/dev-libs/log4c/Manifest index 7d03b1f..623348a 100644 --- a/dev-libs/log4c/Manifest +++ b/dev-libs/log4c/Manifest @@ -1,5 +1,6 @@ -AUX log4c-socket.patch 35592 BLAKE2B 1c0cc7e1bbabd34a02fcbc7da6317772a37394219754fb2b25fdafa427c7c0c6e40c1f60ef955fd047f17f5bf95ea9fde4794ece4e8e1f9d4415f37f2a6a3f8f SHA512 54c86d315c5ee49162a876b137c807d4c07c1af9e0ef11f26187bfece0dcb6f6281dcd09701cc4da9b03d357d6fbe85831fb56fd43b5adf9e71736a1a37ffa0f +AUX log4c-1.2.4-format-security.patch 387 BLAKE2B f37945c5a59f05dc142cb288ad412918d58f6624ef4345832fb7a41eae54185f2d72280574418c333dde02288c1e23d6f8ce7502b05b34ea063cc47b0a29b76d SHA512 8ef8eb5a3ad7ac193f89018f6be3f371d655607685a59d05c31e64eb7be89f422dfc73e027050c8252dc0d0ec9fcdbb93b1e6b2e5ac777ba0e64bb9e9e9987b4 +AUX log4c-socket.patch.gz 8775 BLAKE2B 4e12dee2c27ac09dbf03a1bbfea7595430062e4e8f9db2b98e2fdae418f40cfc9af9f881ac61f2f65e8edf29268915b1442acef43bbaf1ee33d792e47a9e57c0 SHA512 4e017956a95813a0ab2bd4cce35a167b302490b595958d146a8c2be185c26d57e9143d1d290195c1bd94dd35a8a585b175d8bcae4065fd11dba904a469b47a87 DIST log4c-1.2.4.tar.gz 559789 BLAKE2B a685fafb8ac117f47063e77bdbef09d187da464daa9eac7df726d9f65e225b45205ff5ac118e9466a682866d920afadc635192ee14a8fa8598fb7d7f6da6d33f SHA512 bd66029183b545de6b46b803e128735c5b57af0ca7f8a0a1f1655565920778993362e3187ffbe9b4b5e85dbf4c700b7d1f1dd4d1a636bcb20bfdb71fc73d37ca -EBUILD log4c-1.2.4.ebuild 1135 BLAKE2B bdb04ea5b99d911c3e64ee596fd704904add3c5faa42815b1bd912e3a248e51375b229641764c00e5b5bdcb63fcee8e9a9acc5c8393563149811480464df9002 SHA512 247da22d52e22cc0f9c9a930dc5798fe675a6ae668bbc6bdf97ff227c41d23830fc033a0265851eb9fd804c2aa555044ab480a07433ba45c562cf1608e3090e5 +EBUILD log4c-1.2.4.ebuild 1221 BLAKE2B 0137a8b22924aebd754aaea57a230c2ba1a33d0a77bb560b96f881dd0f29c54293732952ba08652af5f8d4f8277aa21ebfedb781c81e59704d7fc1c78cac5202 SHA512 d5b72f87fbecab42009616e96941ae4a10e67f50d7e49da629150c2ec092d636861dc0a66b6a3f1ed8f4f61dcbe993801dd22131358104527dcf7a6c2cc8fb12 MISC ChangeLog 817 BLAKE2B 18d6a96421609a21169fbe2a4d6737d73140a629dfdd0a36805e474263bbaad77c7c9e2b47811184f0b5da2ed4f0a3de577b0ef5e0fbc3a634457ec6866847c4 SHA512 f6e0caebf861e601eb2b5c503d651a63869f5e862881a026da8cc5ebeb6c06c4ec38d3cd754585523a9ff50ff03b2dde2907a2648c9cf69104735b388b260758 -MISC metadata.xml 505 BLAKE2B a834408238278fda83342c87452757e76f4f50ea72d7aae5ddb2577023992d0a985cdac6f3eea35b687124a83528fccce832a688c688c8f1424605476a39ddc4 SHA512 1140257ff2eaa385c9831c68b4668385767d762917f006d06cc4e9db72e6c6f9e05177dab405fa525352c1c6428733ce113f13887c0f939dc91e62e27b910ca0 +MISC metadata.xml 576 BLAKE2B 9ae985003c9829d49b46f0e18ba6ab4776c0a30bef6a7438e1e29e39675f1ba3a51d411b8b3c70e7c121acaeabee4bc74253385c4c0adb7e52556d8254e41dbf SHA512 f5941ba1c31c05ef29b392256502d2b9272363e3fad0862fa5dedc03aea394ef87c022f84871699dca33c2414dc8f121af741b39429d790dcd9c5d188b02c574 diff --git a/dev-libs/log4c/files/log4c-1.2.4-format-security.patch b/dev-libs/log4c/files/log4c-1.2.4-format-security.patch new file mode 100644 index 0000000..0c4227d --- /dev/null +++ b/dev-libs/log4c/files/log4c-1.2.4-format-security.patch @@ -0,0 +1,13 @@ +--- a/examples/helloworld1/mylog.h ++++ b/examples/helloworld1/mylog.h +@@ -39,9 +39,9 @@ + + static LOG4C_INLINE void mylog_msg(char *catName,int a_priority, char *msg){ + #ifndef WITHOUT_LOG4C +- log4c_category_log(log4c_category_get(catName), a_priority, msg); ++ log4c_category_log(log4c_category_get(catName), a_priority, "%s", msg); + #else +- printf(msg); ++ printf("%s", msg); + #endif + } diff --git a/dev-libs/log4c/files/log4c-socket.patch b/dev-libs/log4c/files/log4c-socket.patch deleted file mode 100644 index 512306d..0000000 --- a/dev-libs/log4c/files/log4c-socket.patch +++ /dev/null @@ -1,1164 +0,0 @@ -commit 71138c20cb9d40b5c0d1cdce7430616d7088148b -Author: František Dvořák -Date: Sun Mar 24 18:15:37 2013 +0100 - - New socket appender (SF patch #2881285). - -diff --git a/configure.in b/configure.in -index a4b49dd..0e2993a 100644 ---- a/configure.in -+++ b/configure.in -@@ -93,11 +93,14 @@ AC_CHECK_HEADER(pthread.h,[ - AC_CHECK_LIB(pthread,pthread_mutex_init,[ - LIBS="$LIBS -lpthread" - AC_DEFINE([WITH_ROLLINGFILE], [], [Define if we found pthread.h libpthread]) -- AC_MSG_NOTICE([Compile with rollingfile code]) -- with_rollingfile=true],[AC_MSG_NOTICE([No pthread--not compiling rollingfile code])] -+ AC_DEFINE([WITH_SOCKET], [], [Define if we found pthread.h libpthread]) -+ AC_MSG_NOTICE([Compile with additional appenders]) -+ with_rollingfile=true -+ with_socket=true],[AC_MSG_NOTICE([No pthread--not compiling rollingfile code])] - ) - ]) - AM_CONDITIONAL(WITH_ROLLINGFILE, test "x$with_rollingfile" = "xtrue") -+AM_CONDITIONAL(WITH_SOCKET, test "x$with_socket" = "xtrue") - - ##################################### - # Enable test compilation if required -diff --git a/src/log4c/appender_type_socket.c b/src/log4c/appender_type_socket.c -new file mode 100644 -index 0000000..9ce215e ---- /dev/null -+++ b/src/log4c/appender_type_socket.c -@@ -0,0 +1,783 @@ -+static const char version[] = "$Id$"; -+ -+/* -+ * appender_socket.c -+ * -+ * Copyright 2009, H.A.J ten Brugge All rights reserved. -+ * -+ * See the COPYING file for the terms of usage and distribution. -+ */ -+ -+#define _XOPEN_SOURCE 500 /* PTHREAD_PRIO_INHERIT */ -+ -+#ifdef __linux__ -+#define _GNU_SOURCE /* syscall */ -+#include -+#include -+#endif -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define DEFAULT_PORTNR (4560) /* chainsaw port number */ -+#define DEFAULT_SIZE (10000) -+ -+#define SOCK_PACK(b,p,v) { (b)[(p) + 0] = (unsigned char) ((v) >> 24); \ -+ (b)[(p) + 1] = (unsigned char) ((v) >> 16); \ -+ (b)[(p) + 2] = (unsigned char) ((v) >> 8); \ -+ (b)[(p) + 3] = (unsigned char) ((v) >> 0); } -+#define SOCK_UNPACK(b,p) ((((b)[(p) + 0] & 0xff) << 24) | \ -+ (((b)[(p) + 1] & 0xff) << 16) | \ -+ (((b)[(p) + 2] & 0xff) << 8) | \ -+ (((b)[(p) + 3] & 0xff) << 0)) -+ -+/* Local type for starting stopping service */ -+typedef enum -+{ -+ DOWN, /** initial state and when server finished */ -+ STARTUP, /** set when the server is started */ -+ RUNNING, /** set by server when initialized and running */ -+ STOP /** set when the server must be stopped */ -+} -+SERVER_STATE; -+ -+struct socket_udata { -+ int socket; -+ int port; -+ char *hostname; -+ SERVER_STATE state; -+ unsigned int rd; -+ unsigned int wr; -+ unsigned int size; -+ unsigned char *buffer; -+ unsigned char *tmp; -+ pthread_mutex_t mtx; -+ pthread_cond_t cond; -+ sem_t sem; -+}; -+ -+/* xxx would be nice to run-time check the type here */ -+#define socket_get_udata(this) \ -+ (socket_udata_t)log4c_appender_get_udata(this) -+ -+static void uint2asc(unsigned int n, char *str); -+static void * socket_thread (void *data); -+static int socket_init (log4c_appender_t* this); -+static socket_udata_t socket_get_or_make_udata (log4c_appender_t* this); -+static void socket_free_udata (socket_udata_t sud); -+static int socket_append (log4c_appender_t* this, -+ const log4c_logging_event_t* a_event); -+static int socket_close (log4c_appender_t* this); -+ -+/*******************************************************************************/ -+ -+static void uint2asc(unsigned int n, char *str) -+{ -+ char *end = str; -+ char *begin = str; -+ char tmp; -+ -+ do { -+ *end++ = "0123456789"[n % 10]; -+ n /= 10; -+ } while (n); -+ *end-- = 0; -+ while (end > begin) { -+ tmp = *end; -+ *end-- = *begin, -+ *begin++ = tmp; -+ } -+} -+ -+/*******************************************************************************/ -+ -+static void * socket_thread (void *data) -+{ -+ static const char header[] = { '\xAC', '\xED', /* STREAM_MAGIC */ -+ '\x00', '\x05' }; /* STREAM_VERSION */ -+ socket_udata_t sud = (socket_udata_t ) data; -+ unsigned char *buf; -+ unsigned int len; -+ unsigned int count; -+ int r; -+ fd_set fdset; -+ struct timeval timeout; -+ struct addrinfo hints; -+ struct addrinfo *result, *rp; -+ char port[20]; -+ -+ uint2asc ((unsigned int) sud->port, port); -+ memset(&hints, 0, sizeof(struct addrinfo)); -+ hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */ -+ hints.ai_socktype = SOCK_STREAM; /* Stream socket */ -+ hints.ai_flags = AI_NUMERICSERV; /* Numeric portnr */ -+ hints.ai_protocol = 0; /* Any protocol */ -+ if (getaddrinfo(sud->hostname, port, &hints, &result) == 0) { -+ sud->state = RUNNING; -+ sem_post (&sud->sem); -+ pthread_mutex_lock (&sud->mtx); -+ while (sud->state == RUNNING) { -+ if (sud->socket < 0) { -+ for (rp = result; rp != NULL; rp = rp->ai_next) { -+ sud->socket = socket (rp->ai_family, rp->ai_socktype, -+ rp->ai_protocol); -+ if (sud->socket >= 0) { -+ if (connect (sud->socket, rp->ai_addr, -+ rp->ai_addrlen) != -1) { -+ break; -+ } -+ close (sud->socket); -+ sud->socket = -1; -+ } -+ } -+ if (sud->socket >= 0) { -+ buf = (unsigned char *) header; -+ len = sizeof (header); -+ count = 10; -+ while (sud->state == RUNNING && len) { -+ r = write (sud->socket,buf,len); -+ if (r < 0 && -+ (errno == EWOULDBLOCK || errno == EAGAIN || -+ errno == EINTR)) { -+ count--; -+ if (count == 0) { -+ close (sud->socket); -+ sud->socket = -1; -+ len = 0; -+ } -+ } -+ else { -+ len -= r; -+ buf += r; -+ } -+ } -+ } -+ if (sud->socket < 0) { -+ pthread_mutex_unlock (&sud->mtx); -+ sleep (1); -+ pthread_mutex_lock (&sud->mtx); -+ } -+ } -+ else if (sud->rd != sud->wr) { -+ len = SOCK_UNPACK (sud->buffer, sud->rd); -+ if (len == 0) { -+ sud->rd = 0; -+ } -+ else { -+ memcpy (sud->tmp, sud->buffer + sud->rd + 4, len); -+ sud->rd += len + 4; -+ if (sud->rd == sud->wr) { -+ sud->rd = sud->wr = 0; -+ } -+ buf = sud->tmp; -+ pthread_mutex_unlock (&sud->mtx); -+ while (sud->state == RUNNING && len) { -+ r = write (sud->socket, buf, len); -+ if (r <= 0) { -+ if (r < 0 && -+ (errno == EWOULDBLOCK || errno == EAGAIN || -+ errno == EINTR)) { -+ FD_ZERO (&fdset); -+ FD_SET (sud->socket,&fdset); -+ timeout.tv_sec = 0; -+ timeout.tv_usec = 1000000; -+ r = select (sud->socket + 1, NULL, &fdset, NULL, -+ &timeout); -+ if (r < 0 && errno != EWOULDBLOCK && -+ errno != EAGAIN && errno != EINTR) { -+ close (sud->socket); -+ sud->socket = -1; -+ len = 0; -+ } -+ } -+ else { -+ close (sud->socket); -+ sud->socket = -1; -+ len = 0; -+ } -+ } -+ else { -+ len -= r; -+ buf += r; -+ } -+ } -+ pthread_mutex_lock (&sud->mtx); -+ } -+ } -+ if (sud->state == RUNNING && sud->socket >= 0 && sud->rd == sud->wr) { -+ pthread_cond_wait (&sud->cond, &sud->mtx); -+ } -+ } -+ pthread_mutex_unlock (&sud->mtx); -+ freeaddrinfo (result); -+ } -+ sud->state = DOWN; -+ sem_post (&sud->sem); -+ return NULL; -+} -+ -+ -+/*******************************************************************************/ -+static int socket_init(log4c_appender_t* this){ -+ -+ socket_udata_t sud = socket_make_udata(); -+ -+ log4c_appender_set_udata (this, sud); -+ -+ return(0); -+} -+ -+/*******************************************************************************/ -+static int socket_open(log4c_appender_t* this) -+{ -+ socket_udata_t sud; -+ pthread_attr_t attr; -+ pthread_t id; -+ int rc = -1; -+ -+ if (!this) { -+ return rc; -+ } -+ sud = socket_get_or_make_udata (this); -+ if (!sud) { -+ return rc; -+ } -+ -+ sud->state = STARTUP; -+ -+ pthread_attr_init (&attr); -+ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); -+ pthread_attr_setinheritsched (&attr, PTHREAD_EXPLICIT_SCHED); -+ if (pthread_create (&id, &attr, socket_thread, sud) == 0) { -+ while (sud->state == STARTUP) { -+ while (sem_wait (&sud->sem) < 0 && errno == EINTR); -+ } -+ } -+ else { -+ sud->state = DOWN; -+ } -+ pthread_attr_destroy (&attr); -+ -+ log4c_appender_set_udata (this, sud); -+ -+ return 0; -+} -+ -+/*******************************************************************************/ -+ -+static socket_udata_t socket_get_or_make_udata(log4c_appender_t* this){ -+ socket_udata_t sud; -+ int rc = 0; -+ -+ sud = (socket_udata_t) log4c_appender_get_udata (this); -+ -+ if ( !sud) { -+ rc = socket_init (this); -+ } -+ -+ return (socket_get_udata (this)); -+} -+ -+/*******************************************************************************/ -+ -+LOG4C_API socket_udata_t socket_make_udata(){ -+ -+ socket_udata_t sud = -+ (socket_udata_t) sd_calloc(1, sizeof (struct socket_udata)); -+ char *hostname = sd_strdup ("localhost"); -+ unsigned char *buffer = (unsigned char *) sd_malloc (DEFAULT_SIZE); -+ unsigned char *tmp = (unsigned char *) sd_malloc (DEFAULT_SIZE); -+ pthread_mutexattr_t mattr; -+ pthread_condattr_t cattr; -+ -+ if (sud && hostname && buffer && tmp) { -+ sud->socket = -1; -+ sud->size = DEFAULT_SIZE; -+ sud->hostname = hostname; -+ sud->port = DEFAULT_PORTNR; -+ sud->state = DOWN; -+ sud->rd = 0; -+ sud->wr = 0; -+ sud->buffer = buffer; -+ sud->tmp = tmp; -+ pthread_mutexattr_init (&mattr); -+#if defined(_POSIX_THREAD_PRIO_INHERIT) && _POSIX_THREAD_PRIO_INHERIT != -1 -+ pthread_mutexattr_setprotocol (&mattr, PTHREAD_PRIO_INHERIT); -+#endif -+ pthread_mutex_init (&sud->mtx, &mattr); -+ pthread_mutexattr_destroy (&mattr); -+ pthread_condattr_init (&cattr); -+ pthread_cond_init (&sud->cond, &cattr); -+ pthread_condattr_destroy (&cattr); -+ sem_init (&sud->sem, 1, 0); -+ } -+ else { -+ free (sud); -+ free (hostname); -+ free (buffer); -+ free (tmp); -+ sud = NULL; -+ } -+ return(sud); -+} -+ -+/*******************************************************************************/ -+ -+LOG4C_API int socket_udata_set_host (socket_udata_t sud, char *value) -+{ -+ char *hostname; -+ int rc = -1; -+ -+ if (sud && value) { -+ hostname = sd_strdup (value); -+ if (hostname) { -+ free (sud->hostname); -+ sud->hostname = hostname; -+ rc = 0; -+ } -+ } -+ return rc; -+} -+ -+/*******************************************************************************/ -+ -+LOG4C_API int socket_udata_set_port (socket_udata_t sud, int value) -+{ -+ int rc = -1; -+ -+ if (sud) { -+ sud->port = value; -+ } -+ return rc; -+} -+ -+/*******************************************************************************/ -+ -+LOG4C_API int socket_udata_set_size (socket_udata_t sud, int value) -+{ -+ unsigned char *buffer; -+ unsigned char *tmp; -+ int rc = -1; -+ -+ if (!sud) return -1; -+ if (sud->size == value) return 0; -+ -+ buffer = (unsigned char *) malloc (value); -+ tmp = (unsigned char *) malloc (value); -+ if (buffer && tmp) { -+ pthread_mutex_lock (&sud->mtx); -+ free (sud->buffer); -+ free (sud->tmp); -+ sud->size = value; -+ sud->buffer = buffer; -+ sud->tmp = tmp; -+ sud->rd = 0; -+ sud->wr = 0; -+ pthread_mutex_unlock (&sud->mtx); -+ rc = 0; -+ } else { -+ free (buffer); -+ free (tmp); -+ } -+ -+ return rc; -+} -+ -+/*******************************************************************************/ -+ -+static void socket_free_udata(socket_udata_t sud) -+{ -+ pthread_mutex_destroy (&sud->mtx); -+ pthread_cond_destroy (&sud->cond); -+ sem_destroy (&sud->sem); -+ free (sud->buffer); -+ free (sud->tmp); -+ free (sud->hostname); -+ free (sud); -+} -+ -+/*******************************************************************************/ -+static int socket_append(log4c_appender_t* this, -+ const log4c_logging_event_t* a_event) -+{ -+/* See: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html */ -+ static const char event[] = { -+ '\x79', /* TC_RESET */ -+ '\x73', /* TC_OBJECT */ -+ '\x72', /* TC_CLASSDESC */ -+ '\x00', '\x21', /* "org.apache.log4j.spi.LoggingEvent".length() */ -+ 'o','r','g','.','a','p','a','c','h','e','.','l','o','g','4','j','.', -+ 's','p','i','.','L','o','g','g','i','n','g','E','v','e','n','t', -+ /* LoggingEvent.serialVersionUID */ -+ '\xf3','\xf2','\xb9','\x23','\x74','\x0b','\xb5','\x3f', -+ '\x03', /* classDescFlags: SC_WRITE_METHOD | SC_SERIALIZABLE */ -+ '\x00','\x0a', /* fields.length() */ -+ 'Z', /* typecode for boolean 'Z' */ -+ '\x00','\x15', /* "mdcCopyLookupRequired".length() */ -+ 'm','d','c','C','o','p','y','L','o','o','k','u','p', -+ 'R','e','q','u','i','r','e','d', -+ 'Z', /* boolean field 'Z' */ -+ '\x00','\x11', /* "ndcLookupRequired".length() */ -+ 'n','d','c','L','o','o','k','u','p','R','e','q','u','i','r','e','d', -+ 'J', /* typecode for long 'J' */ -+ '\x00','\x09', /* "timeStamp".length() */ -+ 't','i','m','e','S','t','a','m','p', -+ 'L', /* typecode 'L' */ -+ '\x00','\x0C', /* "categoryName".length() */ -+ 'c','a','t','e','g','o','r','y','N','a','m','e', -+ '\x74', /* TC_STRING */ -+ '\x00','\x12', /* "Ljava/lang/String;".length() */ -+ 'L','j','a','v','a','/','l','a','n','g','/','S','t','r','i','n','g',';', -+ 'L', /* typecode 'L' */ -+ '\x00','\x0C', /* "locationInfo".length() */ -+ 'l','o','c','a','t','i','o','n','I','n','f','o', -+ '\x74', /* TC_STRING */ -+ '\x00','\x23', /* "Lorg/apache/log4j/spi/LocationInfo;".length() */ -+ 'L','o','r','g','/','a','p','a','c','h','e','/','l','o','g','4','j', -+ '/','s','p','i','/','L','o','c','a','t','i','o','n','I','n','f','o',';', -+ 'L', /* typecode 'L' */ -+ '\x00','\x07', /* "mdcCopy".length() */ -+ 'm','d','c','C','o','p','y', -+ '\x74', /* TC_STRING */ -+ '\x00','\x15', /* "Ljava/lang/Hashtable;".length() */ -+ 'L','j','a','v','a','/','l','a','n','g','/', -+ 'H','a','s','h','t','a','b','l','e',';', -+ 'L', /* typecode 'L' */ -+ '\x00','\x03', /* "ndc".length() */ -+ 'n','d','c', -+ '\x71', /* TC_REFERENCE */ -+ '\x00','\x7E','\x00','\x01', /* handle to second serialized field */ -+ 'L', /* typecode 'L' */ -+ '\x00','\x0F', /* "renderedMessage".length() */ -+ 'r','e','n','d','e','r','e','d','M','e','s','s','a','g','e', -+ '\x71', /* TC_REFERENCE */ -+ '\x00','\x7E','\x00','\x01', /* handle to second serialized field */ -+ 'L', /* typecode 'L' */ -+ '\x00','\x0a', /* "threadName".length() */ -+ 't','h','r','e','a','d','N','a','m','e', -+ '\x71', /* TC_REFERENCE */ -+ '\x00','\x7E','\x00','\x01', /* handle to second serialized field */ -+ 'L', /* typecode 'L' */ -+ '\x00','\x0D', /* "throwableInfo".length() */ -+ 't','h','r','o','w','a','b','l','e','I','n','f','o', -+ '\x74', /* TC_STRING */ -+ '\x00','\x2B', /* "Lorg/apache/log4j/spi/ThrowableInformation;".length() */ -+ 'L','o','r','g','/','a','p','a','c','h','e','/','l','o','g','4','j', -+ '/','s','p','i','/','T','h','r','o','w','a','b','l','e','I','n','f', -+ 'o','r','m','a','t','i','o','n',';', -+ '\x78', /* TC_ENDBLOCKDATA */ -+ '\x70' }; /* TC_NULL */ -+ -+ char data1[10]; -+#if 0 -+ static const char datax[] = { -+ '\x00', /* mdcCopyLookupRequired */ -+ '\x00', /* ndcLookupRequired */ -+ /* timeStamp in ms */ -+ '\x00','\x00','\x00','\x00','\x00','\x00','\x00','\x00' }; -+#endif -+ char data2[3]; -+#if 0 -+ static const char datax[] = { -+ '\x74', /* categoryName: TC_STRING */ -+ '\x00','\x04', /* "root".length() */ -+ 'r','o','o','t' }; -+#endif -+ static const char location[] = { -+ '\x73', /* TC_OBJECT */ -+ '\x72', /* TC_CLASSDESC */ -+ '\x00','\x21', /* "org.apache.log4j.spi.LocationInfo".length() */ -+ 'o','r','g','.','a','p','a','c','h','e','.','l','o','g','4','j','.', -+ 's','p','i','.','L','o','c','a','t','i','o','n','I','n','f','o', -+ /* LocationInfo.serialVersionUID */ -+ '\xed','\x99','\xbb','\xe1','\x4a','\x91','\xa5','\x7c', -+ '\x02', /* classDescFlags of SC_SERIALIZABLE */ -+ '\x00','\x01', /* fields.length() */ -+ 'L', /* typecode 'L' */ -+ '\x00','\x08', /* "fullInfo".length() */ -+ 'f','u','l','l','I','n','f','o', -+ '\x71', /* TC_REFERENCE */ -+ '\x00','\x7E','\x00','\x01', /* handle to second serialized field */ -+ '\x78', /* TC_ENDBLOCKDATA */ -+ '\x70', /* TC_NULL */ -+ '\x74' }; /* LocationInfo: TC_STRING */ -+ char data3[2]; -+#if 0 -+static const char datax[] = { -+ '\x00','\x14', /* "tst.main(tst.java:8)".length() */ -+ 't','s','t','.','m','a','i','n','(','t','s','t','.', -+ 'j','a','v','a',':','8',')' }; -+#endif -+ char data4[6]; -+ char data5[3]; -+#if 0 -+ static const char datax[] = { -+ '\x70', /* LocationInfo:: TC_NULL */ -+ '\x70', /* mdcCopy: TC_NULL */ -+ '\x70', /* ndc: TC_NULL */ -+ '\x74', /* renderedMessage: TC_STRING */ -+ '\x00','\x11', /* "Here is some INFO".length() */ -+ 'H','e','r','e',' ','i','s',' ','s','o','m','e',' ','I','N','F','O', -+ '\x74', /* threadName: TC_STRING */ -+ '\x00','\x04', /* "main".length() */ -+ 'm','a','i','n' }; -+#endif -+ char data6[9]; -+#if 0 -+ static const char datax[] = { -+ '\x70', /* throwableInfo: TC_NULL */ -+ '\x77', /* BLOCKDATA */ -+ '\x04', /* size */ -+ '\x00','\x00','\x4e','\x20', /* Level.INFO */ -+ '\x70', /* throwableInfo: TC_NULL */ -+ '\x78' }; /* TC_ENDBLOCKDATA */ -+#endif -+ -+ socket_udata_t sud = (socket_udata_t) log4c_appender_get_udata(this); -+ char threadname[100]; -+ char location_string[1000]; -+ unsigned int len1; -+ unsigned int len2 = 0; -+ unsigned int len3; -+ unsigned int len4; -+ unsigned int level; -+ XP_UINT64 t; -+ unsigned int rdlen; -+ unsigned int totallen; -+ -+ if ( !sud ) { -+ return(-1); -+ } -+ -+ t = (XP_UINT64) a_event->evt_timestamp.tv_sec * 1000 + -+ (XP_UINT64) a_event->evt_timestamp.tv_usec / 1000; -+ -+ data1[0] = 0x00; /* mdcCopyLookupRequired */ -+ data1[1] = 0x00; /* ndcLookupRequired */ -+ data1[2] = t >> 56; /* timeStamp in ms */ -+ data1[3] = t >> 48; -+ data1[4] = t >> 40; -+ data1[5] = t >> 32; -+ data1[6] = t >> 24; -+ data1[7] = t >> 16; -+ data1[8] = t >> 8; -+ data1[9] = t >> 0; -+ -+ len1 = strlen (a_event->evt_category); -+ data2[0] = 0x74; /* categoryName: TC_STRING */ -+ data2[1] = len1 >> 8; /* categoryName:.length() */ -+ data2[2] = len1 >> 0; -+ -+ if (a_event->evt_loc) { -+ len3 = a_event->evt_loc->loc_function ? -+ strlen (a_event->evt_loc->loc_function) : 0; -+ len4 = a_event->evt_loc->loc_file ? -+ strlen (a_event->evt_loc->loc_file) : 0; -+ if ((len3 + len4 + 20) < sizeof (location_string)) { -+ location_string[0] = '\0'; -+ if (a_event->evt_loc->loc_function) { -+ strcpy (&location_string[len2], -+ a_event->evt_loc->loc_function); -+ len2 += len3; -+ } -+ if (a_event->evt_loc->loc_file || a_event->evt_loc->loc_line) { -+ strcpy (&location_string[len2], "("); -+ len2++; -+ } -+ if (a_event->evt_loc->loc_file) { -+ strcpy (&location_string[len2], -+ a_event->evt_loc->loc_file); -+ len2 += len4; -+ } -+ if (a_event->evt_loc->loc_file || a_event->evt_loc->loc_line) { -+ strcpy (&location_string[len2], ":"); -+ len2++; -+ } -+ if (a_event->evt_loc->loc_line) { -+ uint2asc ((unsigned int) a_event->evt_loc->loc_line, -+ &location_string[len2]); -+ len2 += strlen (&location_string[len2]); -+ } -+ if (a_event->evt_loc->loc_file || a_event->evt_loc->loc_line) { -+ strcpy (&location_string[len2], ")"); -+ len2++; -+ } -+ data3[0] = len2 >> 8; -+ data3[1] = len2 >> 0; -+ } -+ } -+ -+ len3 = strlen (a_event->evt_msg); -+ data4[0] = 0x70; /* LocationInfo:: TC_NULL */ -+ data4[1] = 0x70; /* mdcCopy: TC_NULL */ -+ data4[2] = 0x70; /* ndc: TC_NULL */ -+ data4[3] = 0x74; /* renderedMessage: TC_STRING */ -+ data4[4] = len3 >> 8; /* renderedMessage.length() */ -+ data4[5] = len3 >> 0; -+ -+#ifdef __linux__ -+ uint2asc ((unsigned int) syscall (SYS_gettid), threadname); -+#else -+ uint2asc ((unsigned int) pthread_self (), threadname); -+#endif -+ len4 = strlen (threadname); -+ data5[0] = 0x74; /* threadName: TC_STRING */ -+ data5[1] = len4 >> 8; /* threadName.length() */ -+ data5[2] = len4 >> 0; -+ -+ level = a_event->evt_priority; -+ switch (level) { -+ case LOG4C_PRIORITY_FATAL: level = 50000; break; -+ case LOG4C_PRIORITY_ALERT: level = 50000; break; -+ case LOG4C_PRIORITY_CRIT: level = 50000; break; -+ case LOG4C_PRIORITY_ERROR: level = 40000; break; -+ case LOG4C_PRIORITY_WARN: level = 30000; break; -+ case LOG4C_PRIORITY_NOTICE: level = 20000; break; -+ case LOG4C_PRIORITY_INFO: level = 20000; break; -+ case LOG4C_PRIORITY_DEBUG: level = 10000; break; -+ case LOG4C_PRIORITY_TRACE: level = 10000; break; -+ case LOG4C_PRIORITY_NOTSET: level = 2147483647; break; -+ case LOG4C_PRIORITY_UNKNOWN: level = 2147483647; break; -+ } -+ data6[0] = 0x70; /* throwableInfo: TC_NULL */ -+ data6[1] = 0x77; /* BLOCKDATA */ -+ data6[2] = 0x04; /* size */ -+ data6[3] = level >> 24; /* Level */ -+ data6[4] = level >> 16; -+ data6[5] = level >> 8; -+ data6[6] = level >> 0; -+ data6[7] = 0x70; /* throwableInfo: TC_NULL */ -+ data6[8] = 0x78; /* TC_ENDBLOCKDATA */ -+ -+ totallen = sizeof(event) + sizeof(data1) + sizeof(data2) + len1 + -+ sizeof(data4) + len3 + sizeof(data5) + len4 + sizeof(data6); -+ if (len2) { -+ totallen += sizeof(location) + sizeof(data3) + len2 - 1; -+ } -+ pthread_mutex_lock (&sud->mtx); -+ for (;;) { -+ if (sud->wr < sud->rd) { -+ if ((totallen + 4) < (sud->rd - sud->wr)) { -+ break; -+ } -+ rdlen = SOCK_UNPACK (sud->buffer, sud->rd); -+ if (rdlen == 0) { -+ sud->rd = 0; -+ } -+ else { -+ sud->rd += rdlen + 4; -+ } -+ } -+ else { -+ if ((totallen + 8) <= (sud->size - sud->wr)) { -+ break; -+ } -+ if (sud->wr && sud->rd == 0) { -+ rdlen = SOCK_UNPACK (sud->buffer, sud->rd); -+ sud->rd += rdlen + 4; -+ } -+ else if (sud->wr == 0) { -+ totallen = 0; -+ break; -+ } -+ SOCK_PACK (sud->buffer, sud->wr, 0); -+ sud->wr = 0; -+ } -+ } -+ if (totallen) { -+ SOCK_PACK (sud->buffer, sud->wr, totallen); -+ sud->wr += 4; -+ memcpy (sud->buffer + sud->wr, event, sizeof(event)); -+ sud->wr += sizeof(event); -+ memcpy (sud->buffer + sud->wr, data1, sizeof(data1)); -+ sud->wr += sizeof(data1); -+ memcpy (sud->buffer + sud->wr, data2, sizeof(data2)); -+ sud->wr += sizeof(data2); -+ memcpy (sud->buffer + sud->wr, a_event->evt_category, len1); -+ sud->wr += len1; -+ if (len2) { -+ memcpy (sud->buffer + sud->wr, location, sizeof(location)); -+ sud->wr += sizeof(location); -+ memcpy (sud->buffer + sud->wr, data3, sizeof(data3)); -+ sud->wr += sizeof(data3); -+ memcpy (sud->buffer + sud->wr, location_string, len2); -+ sud->wr += len2; -+ memcpy (sud->buffer + sud->wr, data4 + 1, sizeof(data4) - 1); -+ sud->wr += sizeof(data4) - 1; -+ } -+ else { -+ memcpy (sud->buffer + sud->wr, data4, sizeof(data4)); -+ sud->wr += sizeof(data4); -+ } -+ memcpy (sud->buffer + sud->wr, a_event->evt_msg, len3); -+ sud->wr += len3; -+ memcpy (sud->buffer + sud->wr, data5, sizeof(data5)); -+ sud->wr += sizeof(data5); -+ memcpy (sud->buffer + sud->wr, threadname, len4); -+ sud->wr += len4; -+ memcpy (sud->buffer + sud->wr, data6, sizeof(data6)); -+ sud->wr += sizeof(data6); -+ pthread_cond_broadcast (&sud->cond); -+ } -+ pthread_mutex_unlock (&sud->mtx); -+ return 0; -+} -+ -+/*******************************************************************************/ -+static int socket_close(log4c_appender_t* this) -+{ -+ socket_udata_t sud = (socket_udata_t) log4c_appender_get_udata (this); -+ int rc = -1; -+ -+ if ( !this){ -+ return rc; -+ } -+ sud = socket_get_udata (this); -+ if ( !sud){ -+ return(rc); -+ } -+ -+ if (sud->state == RUNNING) { -+ if (sud->socket >= 0 && sud->rd != sud->wr) { -+ sleep (1); -+ } -+ sud->state = STOP; -+ pthread_cond_broadcast (&sud->cond); -+ while (sud->state == STOP) { -+ while (sem_wait (&sud->sem) < 0 && errno == EINTR); -+ } -+ } -+ -+ if (sud->socket >= 0) { -+ rc = close (sud->socket); -+ } else { -+ rc = 0; -+ } -+ -+ /* Free up and reset any data associated with this socket appender */ -+ socket_free_udata (sud); -+ log4c_appender_set_udata (this, NULL); -+ -+ return (rc); -+} -+ -+/*******************************************************************************/ -+const log4c_appender_type_t log4c_appender_type_socket = { -+ "socket", -+ socket_open, -+ socket_append, -+ socket_close, -+}; -diff --git a/src/log4c/appender_type_socket.h b/src/log4c/appender_type_socket.h -new file mode 100644 -index 0000000..ac8ee00 ---- /dev/null -+++ b/src/log4c/appender_type_socket.h -@@ -0,0 +1,81 @@ -+/* $Id$ -+ * -+ * appender_type_socket.h -+ * -+ * Copyright 2009, H.A.J ten Brugge All rights reserved. -+ * -+ * See the COPYING file for the terms of usage and distribution. -+ */ -+ -+#ifndef log4c_appender_type_socket_h -+#define log4c_appender_type_socket_h -+ -+/** -+ * @file appender_type_socket.h -+ * -+ * @brief Log4c socket appender interface. -+ * -+ * The socket appender uses a socket connection for logging. The socket -+ * interface is the same as the log4j SocketReceiver. The default settings -+ * will connect to the chainsaw interface for log4j. -+ * -+ * There are some extra parameters in the xml file to setup the connection. -+ * The host (default localhost) and port (default 4560) are used to connect -+ * to a remote chainsaw server. The size option (default 10000) is used -+ * to buffer size data bytes until the connection to chainsaw is made. -+ * If no connection can be made the oldest event is deleted and overwritten -+ * the latest event. -+ * -+ **/ -+ -+#include -+#include -+ -+__LOG4C_BEGIN_DECLS -+ -+typedef struct socket_udata *socket_udata_t; -+ -+/** -+ * Stream appender type definition. -+ * -+ * This should be used as a parameter to the log4c_appender_set_type() -+ * routine to set the type of the appender. -+ * -+ **/ -+LOG4C_API const log4c_appender_type_t log4c_appender_type_socket; -+ -+ -+/** -+ * Get a new socket udata -+ * @return a new socket udata, otherwise NULL. -+ */ -+LOG4C_API socket_udata_t socket_make_udata(); -+ -+/** -+ * Set the host name for the socket interface. -+ * @param sup the socket udata configuration object. -+ * @param value the host name. -+ * @return zero if successful, non-zero otherwise. -+ */ -+LOG4C_API int socket_udata_set_host (socket_udata_t sup, char *value); -+ -+/** -+ * Set the port number for the socket interface. -+ * @param sup the socket udata configuration object. -+ * @param value the post number. -+ * @return zero if successful, non-zero otherwise. -+ */ -+LOG4C_API int socket_udata_set_port (socket_udata_t sup, int value); -+ -+/** -+ * Set the buffer size for the socket interface. -+ * @param sup the socket udata configuration object. -+ * @param value the size to use for the buffering of data. -+ * @return zero if successful, non-zero otherwise. -+ */ -+LOG4C_API int socket_udata_set_size (socket_udata_t sup, int value); -+ -+ -+__LOG4C_END_DECLS -+ -+#endif -diff --git a/src/log4c/init.c b/src/log4c/init.c -index 4fa8577..d99dbd7 100644 ---- a/src/log4c/init.c -+++ b/src/log4c/init.c -@@ -25,6 +25,7 @@ static const char version[] = "$Id$"; - - #include - #include -+#include - #include - #include - #include -@@ -59,7 +60,10 @@ static const log4c_appender_type_t * const appender_types[] = { - &log4c_appender_type_syslog, - #endif - #ifdef WITH_ROLLINGFILE -- &log4c_appender_type_rollingfile -+ &log4c_appender_type_rollingfile, -+#endif -+#ifdef WITH_SOCKET -+ &log4c_appender_type_socket, - #endif - }; - static size_t nappender_types = sizeof(appender_types) / sizeof(appender_types[0]); -diff --git a/src/log4c/rc.c b/src/log4c/rc.c -index a9bb46e..fe6cbb1 100644 ---- a/src/log4c/rc.c -+++ b/src/log4c/rc.c -@@ -19,6 +19,7 @@ static const char version[] = "$Id$"; - #include - #include - #include -+#include - #include - #include - #include -@@ -218,6 +219,28 @@ static int appender_load(log4c_rc_t* this, sd_domnode_t* anode) - } - } - #endif -+#ifdef WITH_SOCKET -+ if ( !strcasecmp(type->value, "socket")) { -+ socket_udata_t sud = NULL; -+ sd_domnode_t* host = sd_domnode_attrs_get(anode, -+ "host"); -+ sd_domnode_t* port = sd_domnode_attrs_get(anode, -+ "port"); -+ sd_domnode_t* size = sd_domnode_attrs_get(anode, -+ "size"); -+ sud = socket_make_udata(); -+ if (host && host->value) { -+ socket_udata_set_host(sud, (char *)host->value); -+ } -+ if (port && port->value) { -+ socket_udata_set_port(sud, atoi ((char *)port->value)); -+ } -+ if (size && size->value) { -+ socket_udata_set_size(sud, parse_byte_size ((char *)size->value)); -+ } -+ log4c_appender_set_udata(app, sud); -+ } -+#endif - } - - if (layout) -diff --git a/tests/log4c/Makefile.am b/tests/log4c/Makefile.am -index 9e0be30..84dff86 100644 ---- a/tests/log4c/Makefile.am -+++ b/tests/log4c/Makefile.am -@@ -9,6 +9,10 @@ if WITH_ROLLINGFILE - noinst_PROGRAMS += test_rollingfile_appender test_rollingfile_appender_mt - endif - -+if WITH_SOCKET -+noinst_PROGRAMS += test_socket_appender -+endif -+ - cpp_compile_test_SOURCES = cpp_compile_test.cpp - - test_category_SOURCES = test_category.c -@@ -40,6 +44,11 @@ test_rollingfile_appender_mt_LDADD = $(top_builddir)/src/log4c/liblog4c.la \ - -lpthread - endif - -+if WITH_SOCKET -+test_socket_appender_SOURCES = test_socket_appender.c -+test_socket_appender_LDADD = $(top_builddir)/src/log4c/liblog4c.la -+endif -+ - test_big_SOURCES = test_big.c - test_big_LDADD = $(top_builddir)/src/log4c/liblog4c.la - -diff --git a/tests/log4c/test_socket_appender.c b/tests/log4c/test_socket_appender.c -new file mode 100644 -index 0000000..db9afe4 ---- /dev/null -+++ b/tests/log4c/test_socket_appender.c -@@ -0,0 +1,140 @@ -+ -+/* -+ * test_socket_appender.c -+ * -+ * This file demonstrates how to programatically use the socket -+ * appender. See also the API documentation for the -+ * appender_type_socket.h file. -+ * -+ * It is possible to be more terse here if you accept the default values, -+ * but we spell it out explicitly. -+ * -+ * See the COPYING file for the terms of usage and distribution. -+ */ -+ -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include -+#include -+#include -+ -+/*********************** Parameters ********************************** -+ * -+ * params could be taken from the command line to facillitate testing -+ * -+*/ -+ -+/* -+ * socket specific params -+*/ -+char *param_host = "localhost"; -+//int param_port = 4445; -+int param_port = 4560; -+long param_size = 10000; -+ -+/* -+ * Other Logging params -+ * xxx Problem with dated layout on windows: assert failure -+ * in gmtime call. -+*/ -+char *param_layout_to_use = "dated"; /* could also be "basic" */ -+ -+/******************************************************************* -+ * -+ * Globals -+ * -+ */ -+log4c_category_t* root = NULL; -+log4c_appender_t* socket_appender = NULL; -+/******************************************************************************/ -+ -+/* -+ * Init log4c and configure a socket appender -+ * -+*/ -+static void init_log4c_with_socket_appender(){ -+ int rc = 2; -+ socket_udata_t sud = NULL; -+ -+ printf("using the socket appender " -+ "to send log events\n" -+ "remote host is '%s', remote port is %d, buffer size is %ld\n", -+ param_host, param_port, param_size); -+ -+ if ( (rc = log4c_init()) == 0 ) { -+ printf("log4c init success\n"); -+ } else { -+ printf("log4c init failed--error %d\n", rc); -+ return; -+ } -+ -+ /* -+ * Get a reference to the root category -+ */ -+ root = log4c_category_get("root"); -+ log4c_category_set_priority(root, -+ LOG4C_PRIORITY_WARN); -+ -+ /* -+ * Get an appender and set the type to socket -+ */ -+ socket_appender = log4c_appender_get("aname"); -+ log4c_appender_set_type(socket_appender, -+ log4c_appender_type_get("socket")); -+ -+ /* -+ * Make a rolling file udata object and set the basic parameters -+ */ -+ sud = socket_make_udata(); -+ if (param_host) socket_udata_set_host(sud, param_host); -+ if (param_port) socket_udata_set_port(sud, param_port); -+ if (param_size) socket_udata_set_size(sud, param_size); -+ -+ log4c_appender_set_udata(socket_appender, sud); -+ -+ /* -+ * Configure a layout for the rolling file appender -+ */ -+ log4c_appender_set_layout(socket_appender, -+ log4c_layout_get(param_layout_to_use) ); -+ -+ /* -+ * Configure the root category with our socket appender... -+ * and we can then start logging to it. -+ * -+ */ -+ log4c_category_set_appender(root, socket_appender); -+ -+ log4c_dump_all_instances(stderr); -+} -+ -+static int test0(int argc, char* argv[]) -+{ -+ int i = 0; -+ init_log4c_with_socket_appender(); -+ -+ for (i = 0; i<200; i++){ -+ -+ log4c_category_fatal(root, -+ "%d%d%d%d%d%d%d%d%d%d%d%d%d\n",i,i,i,i,i,i,i,i,i,i,i,i,i); -+ -+ } -+ -+ /* Explicitly call the log4c cleanup routine */ -+ if ( log4c_fini()){ -+ printf("log4c_fini() failed"); -+ } -+ -+ return 1; -+} -+ -+/******************************************************************************/ -+int main(int argc, char* argv[]) -+{ -+ -+ test0(argc,argv); -+ -+ return(0); -+} -diff --git a/src/log4c/Makefile.am b/src/log4c/Makefile.am -index f9f5882..c14dac9 100644 ---- a/src/log4c/Makefile.am -+++ b/src/log4c/Makefile.am -@@ -33,6 +33,10 @@ - rollingpolicy.c rollingpolicy_type_sizewin.c - endif - -+if WITH_SOCKET -+liblog4c_la_SOURCES += appender_type_socket.c -+endif -+ - if WITH_MMAP - liblog4c_la_SOURCES += appender_type_mmap.c - endif -@@ -58,6 +62,7 @@ - layout_type_dated_r.h \ - layout_type_dated_local_r.h \ - layout.h \ -+ appender_type_socket.h \ - appender_type_stream.h \ - appender_type_stream2.h \ - appender_type_syslog.h \ diff --git a/dev-libs/log4c/files/log4c-socket.patch.gz b/dev-libs/log4c/files/log4c-socket.patch.gz new file mode 100644 index 0000000..0ff05a8 Binary files /dev/null and b/dev-libs/log4c/files/log4c-socket.patch.gz differ diff --git a/dev-libs/log4c/log4c-1.2.4.ebuild b/dev-libs/log4c/log4c-1.2.4.ebuild index 7a33cb2..d98deea 100644 --- a/dev-libs/log4c/log4c-1.2.4.ebuild +++ b/dev-libs/log4c/log4c-1.2.4.ebuild @@ -5,9 +5,9 @@ EAPI=8 inherit autotools -DESCRIPTION="Log4c is a library of C for flexible logging to files, syslog and other destinations" -HOMEPAGE="http://log4c.sourceforge.net/" -SRC_URI="mirror://sourceforge/log4c/${P}.tar.gz" +DESCRIPTION="C library for flexible logging to files, syslog, and other destinations" +HOMEPAGE="https://log4c.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/project/log4c/log4c/${PV}/${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" @@ -18,13 +18,13 @@ RDEPEND="media-gfx/graphviz expat? ( dev-libs/expat )" DEPEND="${RDEPEND} - doc? ( app-doc/doxygen )" + doc? ( app-text/doxygen )" - -rc_prepare() { -eapply ${FILESDIR}/log4c-socket.patch -eautoreconf -eapply_user +src_prepare() { + eapply "${FILESDIR}/log4c-socket.patch.gz" + eapply "${FILESDIR}/log4c-1.2.4-format-security.patch" + eautoreconf + eapply_user } src_configure() { diff --git a/dev-libs/log4c/metadata.xml b/dev-libs/log4c/metadata.xml index 2a5aa3b..ac5b8a6 100644 --- a/dev-libs/log4c/metadata.xml +++ b/dev-libs/log4c/metadata.xml @@ -12,4 +12,7 @@ disable optimized assembly code that is not PIC friendly + +log4c + diff --git a/mail-mta/bongo/Manifest b/mail-mta/bongo/Manifest index b2495e8..0de1630 100644 --- a/mail-mta/bongo/Manifest +++ b/mail-mta/bongo/Manifest @@ -5,11 +5,12 @@ AUX bongo-FORTIFY-1.patch 781 BLAKE2B 86103298bdb604509b454f66121745aa61c22a6df7 AUX bongo-arm-asm-1.patch 1425 BLAKE2B 84940dad7b9e9d36b132f436bdfe5cc4aea18cd5d9ce05da5742201199f3f7546b79ef8323fcd8669798c738bfb656629621d1c17e86b83206e274645a8496f7 SHA512 4c55332ab5881278f4b7e9220696d0c780bcd0af8ac14cdbcba66e1e4a516e1344c60df69486fd7224d6c5a2e6298e3c692e21dc5ed9491af137316567366df4 AUX bongo-gentoo-1.patch 809 BLAKE2B facc54604f439e991998795a229e34c3ed3004c6aa31bf8af7ce7724ae3974117a25e5444c11258c59b75eefddd06756a55f9e248375bcdf2f828b739482e7d5 SHA512 939a0abc64e741d86e805a9011721bac05425a4446216bdfb89841d15da17501699f99254ff11a1db34280baf44449653b834349798a2e4d0ecd489b795830e6 AUX bongo-return_value-1.patch 1061 BLAKE2B 842f74e4415189fdd37765681eb23d4d026a5dc5b194daaed6124d3c50f37f5a6980f4b8484cc6e3abe290dbb8dfbeb3dd82aab9824dfe682c31f9dcb07761b7 SHA512 ce92f5dbc27e78c9dac992222b111072d160ca6652e03a435acaeedb1ab2cb2484e11f32ef160b326521734a61fd4e0406ff3e7be26ea4e174973cc44359d7ec +AUX bongo-security-hardening.patch 2198 BLAKE2B 716d4c65c8bd793b625af62c715efc49a23520805588b1bea887cbb6159e44081f3d825fb482b5474dd42a304ed35c0dc191eec6946fab7bcfd05bb6f847f855 SHA512 fb651e20dba5ada4baf27bb005ab040b47d2b5b4df2a7c847b50be335480e465b9a576226bac7fe1a2b35f305f05285f709271531ee3f49ecf0114cbdbdba874 AUX bongo.conf.d 319 BLAKE2B b490af0e0c4673dcb31a9c3ca7292aeaf381105400b954d1457992121643b98f79b2626c4ec71ef2a0ba9a0af1ca2d0517c7b4c30699ff93c47a797c2f54b74c SHA512 2fb3dc879d7a6c96c28eba3c4e2163f79d74b09ad8ad565d8f078d66a6bef0826ca00623d4ec9117b2ebcd363c5f184393c6cf1c051bf5f9db9d6426290693b2 AUX bongo.init 795 BLAKE2B b094d1b850d1bbea7680da38216fb6819cbc7df3e675a47e2561adce1837d6fba85d1c9206c04712e5e5b68942d9f099bcd52092b4f17000a0f540e93f2c7499 SHA512 fa8129ad5969187ca36d7edaa56d83aceb480fd5241fdae22b041242d6c98ead46fd79e15efc9ec102e88dcddba19f650dbd9ef8619ab4cb4b0b4a629a0760d9 AUX mailer.conf 301 BLAKE2B 6c285d7a4acc2fd73990d112c95604dd1bd4ac28c9e296767f2521dc3b1b92c765a5972c51de46d70110aa723b395759289a587d0fd88d7a2aa1a8a9911be397 SHA512 ee02584838312730277150605206c6963035e958f7c2c3327d882cbadc343a21fd2fa2ddd9af43021cc6573f27080f2dd574c9aca6b294efa3d720966751cf47 DIST bongo-0.6.1.tar.gz 2488587 BLAKE2B fdb3596a751e8bc859796019f144b47b23e23e85c265b91d5b34c88da3171d23b90b313a202ecd53c9226490fbc0458d122af1520ef0e23f0b5fcc42fdfb9932 SHA512 27aadcc8cb45a5541c343b8c0871e35d1555f2170e68edebd9a13ccc9c5beeab4c32817c569950d4cf28f6f2f11dbe0a6d7d31172c15cef548c8ac471fe54aac -EBUILD bongo-0.6.1.ebuild 2475 BLAKE2B 35b6b3adc79eb1a057550e0edbf2818380f958e6e641fc900fe1aa456e4c72b308292f065a44df1500020326a4d26a8e605eeacb82427acf34b306850f1864ac SHA512 6464c25f49b8a6f530befec469dcbc9fc32c258147910ef74f4fe08c635284745d4fa2ee02ed62b1313c504acfe86e516d058542a8205b35aa37b005d094ed81 -EBUILD bongo-9999.ebuild 2419 BLAKE2B b7223351b732bd38185989d93bdc215bc4f890f773adac249a65050327066318668826fc11d4fe1a6c61f7b7e245dfdf5f32b062a495a596cc648d05b5aec1c2 SHA512 641993fc50a1f11867de2339721238da75842a3546c1998b7210750a87d0faf70ae90276c0be08bf106862f282d2f79b837327356c28d1103df282540b09d4e5 +EBUILD bongo-0.6.1.ebuild 2258 BLAKE2B 642e63ce229d0c14005fce1f50bbc85869e8226fb298531dfc728500f805aeab499862634ad0bd25d9497857ef498bdb33951fbad6fda69cadfbe1b220446972 SHA512 b736649b12389afc10c60e13677704fe73eb3fe4bd3070091aabd99e05088ecf1522c1d307c078ae4e92cb5069edb11a811294254b4d46d143fbed040c23a603 +EBUILD bongo-9999.ebuild 2773 BLAKE2B 1355ab93edb7e2662829ae02783d8383e29ea0767911c5f3fc54b670960fd740b2a461bf81fa9b3950aa31215387ef838d225aab0c4613c5aca503798a2be89c SHA512 6a304911fcfd9e1f1c1a4c3491d406c6be91cc000f0b60f07741829aa2226ee6637bd9cefc77222106e6dd5032657855afb9a6b7fdfec21cc6dd4008e3a71603 MISC ChangeLog 1707 BLAKE2B 9668b8a388b560b09f0f49ee8c14e1d67690b0ae98fb5eafe257ee72f25b065c344284f40d5719b9c111e74d6ed578406447f0d15af0347f4e6472f50f361ba4 SHA512 9f1fd1ca681cc63b09dabd9cb285d1eb2b564cb79c3e2c1d0b18af8092040dd8bf67e37b69da8557ee5cf1b4bdabd64336951f1dc67e9c4ac97acb5790f312db -MISC metadata.xml 411 BLAKE2B 6bd76e3591b8a2d88277f9ebfbd5951a7458a266adf5818533a1d829a770db62e1de41a4cb4f29206ed5eb381c6f4bfdc04973c4c65bd72496b7e31b6c85880f SHA512 df1f54923628bff824dc8835c96902bd07d4462472b9b8f356abb0b9b81875d78fa96e511290739ecc5423eadc8b2579a65b2f31f9c2c6a73c8d3413c0603d98 +MISC metadata.xml 723 BLAKE2B 17cb505b0c5bcd8fb1d82fa09f300fa1cf8c0abc19de378c6471b4d74b32588a11e2e31d629c44f9543ad59bfd9c83fc707d1cfd30d9faf9ac71ecc31fce5ba7 SHA512 7407c3a6a51062eda4a201c93ff5fb868cbacae47f1c50562daea6d6fbfb2884918b4fb86ca8bd731042ef0f1c26817af8a09215a6b09aceb22444904e65ec07 diff --git a/mail-mta/bongo/bongo-0.6.1.ebuild b/mail-mta/bongo/bongo-0.6.1.ebuild index e099bda..a4eda27 100644 --- a/mail-mta/bongo/bongo-0.6.1.ebuild +++ b/mail-mta/bongo/bongo-0.6.1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{11..15} ) inherit cmake python-single-r1 @@ -19,88 +19,86 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="strip" DEPEND=" - acct-group/bongo - acct-user/bongo - dev-db/sqlite:3 - dev-db/unixODBC - dev-libs/glib:2 - dev-libs/gmime:2.6 - dev-libs/libgcrypt - dev-libs/libical - dev-libs/log4c - net-libs/gnutls - net-misc/curl - net-nds/openldap + acct-group/bongo + acct-user/bongo + dev-db/sqlite:3 + dev-db/unixODBC + dev-libs/glib:2 + dev-libs/gmime:2.6 + dev-libs/libgcrypt + dev-libs/libical + dev-libs/log4c + net-libs/gnutls + net-misc/curl + net-nds/openldap " RDEPEND=" - ${DEPEND} - ${PYTHON_DEPS} - >=net-mail/mailbase-0.00 - !net-mail/mailwrapper - virtual/logger - $(python_gen_cond_dep ' + ${DEPEND} + ${PYTHON_DEPS} + >=net-mail/mailbase-0.00 + virtual/logger + $(python_gen_cond_dep ' dev-python/lxml[${PYTHON_USEDEP}] - ') + ') " -BDEPEND="${RDEPEND}" PATCHES=( - "${FILESDIR}"/bongo-FORTIFY-1.patch - "${FILESDIR}"/bongo-0.6.0-missing_link-1.patch - "${FILESDIR}"/bongo-0.6.0-uninitialized-1.patch - "${FILESDIR}"/bongo-return_value-1.patch - "${FILESDIR}"/bongo-gentoo-1.patch + "${FILESDIR}"/bongo-FORTIFY-1.patch + "${FILESDIR}"/bongo-0.6.0-missing_link-1.patch + "${FILESDIR}"/bongo-0.6.0-uninitialized-1.patch + "${FILESDIR}"/bongo-return_value-1.patch + "${FILESDIR}"/bongo-gentoo-1.patch + "${FILESDIR}"/bongo-security-hardening.patch ) src_configure() { - local mycmakeargs=( + local mycmakeargs=( -DBONGO_USER=bongo -DCMAKE_BUILD_TYPE=Release -DDEBUG=OFF - ) + ) - cmake_src_configure + cmake_src_configure } src_install() { - cmake_src_install + cmake_src_install - newinitd "${FILESDIR}"/bongo.init bongo - newconfd "${FILESDIR}"/bongo.conf.d bongo - newenvd "${FILESDIR}"/70bongo 70bongo + newinitd "${FILESDIR}"/bongo.init bongo + newconfd "${FILESDIR}"/bongo.conf.d bongo + newenvd "${FILESDIR}"/70bongo 70bongo - keepdir /var/lib/bongo - fowners bongo:bongo /var/lib/bongo - fperms 0770 /var/lib/bongo + keepdir /var/lib/bongo + fowners bongo:bongo /var/lib/bongo + fperms 0770 /var/lib/bongo - keepdir /var/run/bongo - fowners bongo:bongo /var/run/bongo - fperms 0770 /var/run/bongo + keepdir /var/run/bongo + fowners bongo:bongo /var/run/bongo + fperms 0770 /var/run/bongo - dosym bongo-sendmail /usr/sbin/sendmail - dosym ../sbin/bongo-sendmail /usr/bin/sendmail - dosym ../sbin/bongo-sendmail /usr/lib/sendmail - dosym bongo-sendmail /usr/sbin/mailq - dosym bongo-sendmail /usr/sbin/newaliases + dosym bongo-sendmail /usr/sbin/sendmail + dosym ../sbin/bongo-sendmail /usr/lib/sendmail + dosym bongo-sendmail /usr/sbin/mailq + dosym bongo-sendmail /usr/sbin/newaliases } pkg_postinst() { - elog "Bongo must be set up." - elog "Please run:" - elog " /usr/sbin/bongo-config install" - elog "" - elog "For more information, run:" - elog " /usr/sbin/bongo-config --help" - elog "" - elog "After setup, start the service with:" - elog " /etc/init.d/bongo start" - elog "" - elog "Default login settings:" - elog " username: admin" - elog " password: bongo" + elog "Bongo must be set up." + elog "Please run:" + elog " /usr/sbin/bongo-config install" + elog "" + elog "For more information, run:" + elog " /usr/sbin/bongo-config --help" + elog "" + elog "After setup, start the service with:" + elog " /etc/init.d/bongo start" + elog "" + elog "Default login settings:" + elog " username: admin" + elog " password: bongo" } pkg_config() { - einfo "Setting up Bongo..." - /usr/sbin/bongo-config install || die "bongo-config install failed" + einfo "Setting up Bongo..." + /usr/sbin/bongo-config install || die "bongo-config install failed" } diff --git a/mail-mta/bongo/bongo-9999.ebuild b/mail-mta/bongo/bongo-9999.ebuild index cff1052..d4bb69f 100644 --- a/mail-mta/bongo/bongo-9999.ebuild +++ b/mail-mta/bongo/bongo-9999.ebuild @@ -3,104 +3,122 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{11..15} ) -inherit cmake git-r3 python-single-r1 +inherit cmake flag-o-matic git-r3 python-single-r1 systemd -EGIT_REPO_URI="https://github.com/bongo-project/bongo.git" +EGIT_REPO_URI="https://gitea.disconnected-by-peer.at/geos_one/bongo.git" +EGIT_BRANCH="master" DESCRIPTION="Calendar and webmail application with its own MTA" -HOMEPAGE="https://bongo-project.org/" +HOMEPAGE="https://gitea.disconnected-by-peer.at/geos_one/bongo" LICENSE="LGPL-2" SLOT="0" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RESTRICT="strip" +IUSE="+debug sanitize test" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + sanitize? ( debug ) +" +RESTRICT=" + debug? ( strip ) + !test? ( test ) +" DEPEND=" - acct-group/bongo - acct-user/bongo - dev-db/sqlite:3 - dev-db/unixODBC - dev-libs/glib:2 - dev-libs/gmime:2.6 - dev-libs/libgcrypt - dev-libs/libical - dev-libs/log4c - net-libs/gnutls - net-misc/curl - net-nds/openldap + ${PYTHON_DEPS} + dev-db/sqlite:3 + dev-libs/glib:2 + dev-libs/gmime:2.6 + dev-libs/libgcrypt + dev-libs/libical + dev-libs/cyrus-sasl[ssl] + mail-filter/libspf2 + mail-filter/libsrs2 + mail-filter/opendkim + mail-filter/opendmarc + net-libs/gnutls:= + net-libs/libpsl + net-mail/mailutils + net-misc/curl[ssl] + $(python_gen_cond_dep ' + dev-python/nh3[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + dev-python/vobject[${PYTHON_USEDEP}] + ') " RDEPEND=" - ${DEPEND} - ${PYTHON_DEPS} - >=net-mail/mailbase-0.00 - !net-mail/mailwrapper - virtual/logger - $(python_gen_cond_dep ' - dev-python/lxml[${PYTHON_USEDEP}] - ') + ${DEPEND} + acct-group/bongo + acct-user/bongo + >=net-mail/mailbase-0.00 + virtual/logger +" +BDEPEND=" + sys-devel/gettext + virtual/pkgconfig " -BDEPEND="${RDEPEND}" - -PATCHES=( - "${FILESDIR}"/bongo-FORTIFY-1.patch - "${FILESDIR}"/bongo-0.6.0-missing_link-1.patch - "${FILESDIR}"/bongo-0.6.0-uninitialized-1.patch - "${FILESDIR}"/bongo-return_value-1.patch - "${FILESDIR}"/bongo-gentoo-1.patch -) src_configure() { - local mycmakeargs=( - -DBONGO_USER=bongo - -DCMAKE_BUILD_TYPE=Release - -DDEBUG=OFF - ) + if use sanitize; then + append-flags -fsanitize=address,undefined -fno-omit-frame-pointer + append-ldflags -fsanitize=address,undefined + fi - cmake_src_configure + local mycmakeargs=( + -DBONGO_CONFIG_DIR="${EPREFIX}/etc/bongo" + -DBONGO_STATE_DIR="${EPREFIX}/var/lib/bongo" + -DBONGO_USER=bongo + -DBUILD_TESTING=$(usex test) + -DCMAKE_BUILD_TYPE=$(usex debug Debug RelWithDebInfo) + -DDEBUG=$(usex debug) + -DLIB_DIR_NAME=$(get_libdir) + -DSYSCONF_INSTALL_DIR="${EPREFIX}/etc" + -DSYSTEMD_SYSTEM_UNIT_DIR="$(systemd_get_systemunitdir)" + ) + + cmake_src_configure } src_install() { - cmake_src_install + cmake_src_install - newinitd "${FILESDIR}"/bongo.init bongo - newconfd "${FILESDIR}"/bongo.conf.d bongo - newenvd "${FILESDIR}"/70bongo 70bongo + newinitd "${FILESDIR}"/bongo.init bongo + newconfd "${FILESDIR}"/bongo.conf.d bongo + newenvd "${FILESDIR}"/70bongo 70bongo - keepdir /var/lib/bongo - fowners bongo:bongo /var/lib/bongo - fperms 0770 /var/lib/bongo + keepdir /var/lib/bongo + fowners bongo:bongo /var/lib/bongo + fperms 0770 /var/lib/bongo - keepdir /var/run/bongo - fowners bongo:bongo /var/run/bongo - fperms 0770 /var/run/bongo + keepdir /var/run/bongo + fowners bongo:bongo /var/run/bongo + fperms 0770 /var/run/bongo - dosym bongo-sendmail /usr/sbin/sendmail - dosym ../sbin/bongo-sendmail /usr/bin/sendmail - dosym ../sbin/bongo-sendmail /usr/lib/sendmail - dosym bongo-sendmail /usr/sbin/mailq - dosym bongo-sendmail /usr/sbin/newaliases + dosym bongo-sendmail /usr/sbin/sendmail + dosym ../sbin/bongo-sendmail /usr/lib/sendmail + dosym bongo-sendmail /usr/sbin/mailq + dosym bongo-sendmail /usr/sbin/newaliases } pkg_postinst() { - elog "Bongo must be set up." - elog "Please run:" - elog " /usr/sbin/bongo-config install" - elog "" - elog "For more information, run:" - elog " /usr/sbin/bongo-config --help" - elog "" - elog "After setup, start the service with:" - elog " /etc/init.d/bongo start" - elog "" - elog "Default login settings:" - elog " username: admin" - elog " password: bongo" + elog "Bongo must be set up." + elog "Please run:" + elog " /usr/sbin/bongo-config install" + elog "" + elog "For more information, run:" + elog " /usr/sbin/bongo-config --help" + elog "" + elog "After setup, start the service with:" + elog " /etc/init.d/bongo start" + elog "" + elog "Default login settings:" + elog " username: admin" + elog " password: bongo" } pkg_config() { - einfo "Setting up Bongo..." - /usr/sbin/bongo-config install || die "bongo-config install failed" + einfo "Setting up Bongo..." + /usr/sbin/bongo-config install || die "bongo-config install failed" } diff --git a/mail-mta/bongo/files/bongo-security-hardening.patch b/mail-mta/bongo/files/bongo-security-hardening.patch new file mode 100644 index 0000000..83ce370 --- /dev/null +++ b/mail-mta/bongo/files/bongo-security-hardening.patch @@ -0,0 +1,62 @@ +--- a/src/libs/mdb-file/mdbfile.c ++++ b/src/libs/mdb-file/mdbfile.c +@@ -181,7 +181,8 @@ MDBFILELogMessage(const unsigned char *Format, ...) + XplWaitOnLocalSemaphore(MDBFile.log.sem); + + va_start(arguments, Format); +- vsprintf(MDBFile.log.buffer, Format, arguments); ++ vsnprintf((char *)MDBFile.log.buffer, MDBFile.log.bufferSize, ++ (const char *)Format, arguments); + va_end(arguments); + + length = strlen(MDBFile.log.buffer); +--- a/src/libs/mdb-xldap/mdbldap.c ++++ b/src/libs/mdb-xldap/mdbldap.c +@@ -3756,8 +3756,9 @@ MDBLDAPInit(MDBDriverInitStruct *Init) + */ + } else { + char *err = "Parameter 'baseDn' required for MDB LDAP Init"; +- sprintf((char *)(Init->Error), err); +- Log(LOG_ERROR, err); ++ snprintf((char *)Init->Error, sizeof(Init->Error), "%s", err); ++ Init->Error[sizeof(Init->Error) - 1] = '\0'; ++ Log(LOG_ERROR, "%s", err); + result = FALSE; + } + } +--- a/src/libs/python/bongo/admin/ManagedSlapd.py ++++ b/src/libs/python/bongo/admin/ManagedSlapd.py +@@ -7,5 +7,6 @@ + import os + import pwd ++import subprocess + import random + import sha + +@@ -172,9 +173,23 @@ userpassword: %(userpw)s + + os.close(fd) + +- os.system("ldapadd -h 127.0.0.1 -p %d -x -D %s -w %s -f %s" % +- (self.port, self.rootdn, self.password, tmpname)) +- os.unlink(tmpname) ++ pwfd, pwname = tempfile.mkstemp(".password") ++ try: ++ os.fchmod(pwfd, 0o600) ++ os.write(pwfd, self.password) ++ os.close(pwfd) ++ pwfd = None ++ subprocess.check_call([ ++ "ldapadd", "-h", "127.0.0.1", "-p", str(self.port), ++ "-x", "-D", self.rootdn, "-y", pwname, "-f", tmpname ++ ]) ++ finally: ++ if pwfd is not None: ++ os.close(pwfd) ++ if os.path.exists(pwname): ++ os.unlink(pwname) ++ if os.path.exists(tmpname): ++ os.unlink(tmpname) + + def writeSlapdConf(self, file, writeRootpw=True): + ldapdir = "%s/ldap" % Xpl.DEFAULT_STATE_DIR diff --git a/mail-mta/bongo/metadata.xml b/mail-mta/bongo/metadata.xml index c0fbf30..970c019 100644 --- a/mail-mta/bongo/metadata.xml +++ b/mail-mta/bongo/metadata.xml @@ -9,4 +9,11 @@ mario.fetka+linamh@gmail.com Geos One Linamh Project + + bongo-project/bongo + + + Build with Bongo's debugging infrastructure and full debug information. + Enable AddressSanitizer and UndefinedBehaviorSanitizer instrumentation. + diff --git a/profiles/categories b/profiles/categories index 6ce0e76..e69de29 100644 --- a/profiles/categories +++ b/profiles/categories @@ -1 +0,0 @@ -cross-avr diff --git a/profiles/thirdpartymirrors b/profiles/thirdpartymirrors index b40a009..e69de29 100644 --- a/profiles/thirdpartymirrors +++ b/profiles/thirdpartymirrors @@ -1 +0,0 @@ -kernel http://www.kernel.org/pub http://lame.lut.fi diff --git a/virtual/mda/Manifest b/virtual/mda/Manifest index c9051cc..e3d0ad7 100644 --- a/virtual/mda/Manifest +++ b/virtual/mda/Manifest @@ -1,3 +1,3 @@ -EBUILD mda-0.ebuild 663 BLAKE2B 59130eae41c1da5fbd881f042900b9fccb6aee243ccf8aabf248205930129d26ec3d718177442484ec37f8a0ed5684a28b15f866a4194a7ecc9db7fb759513ca SHA512 bf4b05e96ca12c9be9dde758f6bac1c88ea279de39d60a327935560514d87aa39f8f89178185062d8cf7576fb5aca2bb1ccaaf32ea86cc89d90cc6424aa062f5 +EBUILD mda-0.ebuild 527 BLAKE2B 2f89d332c0b11645095b025c1da1850254b4004e6356b2813a33d9b051415ae594edb56f5f92264af0d03a65ffe96d0baf85372c95897b9da32d4fc2fee5ada2 SHA512 a103492cdba7917420cb4599ee0cb459939345173d935e3b8349e77357ad9a415dcdcd9177673be6b4ebc2a1269ff1b2f4b5ca03ff33814600378a2f17766363 MISC ChangeLog 723 BLAKE2B b83b3c2d7961b17000d62405303a68c9ae026dd6847c048f54f97926817458044ec776533404a7840dc1a9a8f338cab7fcbe81c74468a9883ed9758dd8871990 SHA512 48b58f8b0f16a71aacfe89eca8659027eae467c24d3bb818171e9020cea7d152b2f390066b1db100c7b5a8186dacd8d9d2e0f32c5655d84e3184fbb9d05dacde -MISC metadata.xml 181 BLAKE2B 52c31858712370e2d11fedde8b19af9f29dc1558e30a1a9f009af435f392fa252920d0d9e4a9fd1ad1e8d2df4f22d9319d12c84811c49c1c4e3b0f38997c7a94 SHA512 626c6bf4a11b2b07419d60ae64c3495b8d4b432ebefa8f7c1960d548753c4c752b57a16eaa6967867eabbaba9404b19bc340407e75dfc6e89345f8189475653e +MISC metadata.xml 275 BLAKE2B 41b1f60071bf1344d143a1aeccaeca087a7e350c4f0298d172823d75c7faf339d899441ee84f4056b323141fb89276fa94cca9123edea165d86b5ecad6e6a286 SHA512 a8d21e3e3e29675f9958b69e6ab4f78a0433d7bcecb7c3b50b13b2236d821dc16af26fd035665edecb9a03990d6a162da1f78f3c124b3c9503cc985a34c4018e diff --git a/virtual/mda/mda-0.ebuild b/virtual/mda/mda-0.ebuild index 4f8b289..ba609b6 100644 --- a/virtual/mda/mda-0.ebuild +++ b/virtual/mda/mda-0.ebuild @@ -2,26 +2,18 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/virtual/mda/mda-0.ebuild,v 1.5 2011/04/24 06:38:28 eras Exp $ -EAPI=3 +EAPI=8 DESCRIPTION="Virtual for Message Delivery Agents" -HOMEPAGE="" -SRC_URI="" - -LICENSE="" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd" -IUSE="" - -DEPEND="" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" # mail-mta/citadel is from sunrise -RDEPEND="|| ( mail-filter/procmail - mail-filter/maildrop - mail-mta/postfix - mail-mta/courier - mail-mta/mini-qmail - mail-mta/netqmail - mail-mta/qmail-ldap - mail-mta/citadel - mail-mta/bongo )" +RDEPEND="|| ( + mail-filter/procmail + mail-filter/maildrop + mail-mta/postfix + mail-mta/courier + mail-mta/netqmail + mail-mta/bongo +)" diff --git a/virtual/mda/metadata.xml b/virtual/mda/metadata.xml index c508d21..cd9f153 100644 --- a/virtual/mda/metadata.xml +++ b/virtual/mda/metadata.xml @@ -1,7 +1,8 @@ -net-mail -qmail + + mario.fetka@gmail.com + Primary maintainer + - diff --git a/virtual/mta/Manifest b/virtual/mta/Manifest index 0e1619d..66797e1 100644 --- a/virtual/mta/Manifest +++ b/virtual/mta/Manifest @@ -1,3 +1,3 @@ -EBUILD mta-1.ebuild 967 BLAKE2B ff551f013d59b257e9194966f25bd783e818bb8741620ced0ef2fa09ca0de25ee4baed9e06d13a5e5eedc45aceae9004d3d05413f4b6485221f1e7ece7001df6 SHA512 a073372c28f883b07248ce1119f92808948de1aa5a6830ee2c6ce822c11651a07de87346ef16eec25ae383d2d338b4474a7f88f435b2b9dce4cbe5794757a0c8 +EBUILD mta-1.ebuild 671 BLAKE2B 77ee1f8a34b85da5a654dd789fd357f764c891807adad06e8b58ecb4d1373a0a0866e51cbe54f5ca38ab5baa35ad5a08ddffe5514446c6ca4a2f244db0d785ae SHA512 12eb8ad93379161aa6893420748bbe882620b1e34cae33ff1d9c7d31c399eb6b3b670bab1818f32b3a8463676d540b8defd1a90c07652c55b744b849f67993b8 MISC ChangeLog 1514 BLAKE2B 2f50d4a74bcd762beded2d4b9cc5c7d689d877ca6273fba9a1960413accd068b7bae37ab3416c52c9992e197e8f58088cbccd134f7b288d41118ddb394794dbd SHA512 90a973cc598cfbda99b3044c03b4fe42cc3cb223e7c6053e5f821441fa6e0fb01fa3ff89a82d560e5571026e44b8475eadbade6593ffee4195010ce3c81ef557 -MISC metadata.xml 181 BLAKE2B 52c31858712370e2d11fedde8b19af9f29dc1558e30a1a9f009af435f392fa252920d0d9e4a9fd1ad1e8d2df4f22d9319d12c84811c49c1c4e3b0f38997c7a94 SHA512 626c6bf4a11b2b07419d60ae64c3495b8d4b432ebefa8f7c1960d548753c4c752b57a16eaa6967867eabbaba9404b19bc340407e75dfc6e89345f8189475653e +MISC metadata.xml 275 BLAKE2B 41b1f60071bf1344d143a1aeccaeca087a7e350c4f0298d172823d75c7faf339d899441ee84f4056b323141fb89276fa94cca9123edea165d86b5ecad6e6a286 SHA512 a8d21e3e3e29675f9958b69e6ab4f78a0433d7bcecb7c3b50b13b2236d821dc16af26fd035665edecb9a03990d6a162da1f78f3c124b3c9503cc985a34c4018e diff --git a/virtual/mta/metadata.xml b/virtual/mta/metadata.xml index c508d21..cd9f153 100644 --- a/virtual/mta/metadata.xml +++ b/virtual/mta/metadata.xml @@ -1,7 +1,8 @@ -net-mail -qmail + + mario.fetka@gmail.com + Primary maintainer + - diff --git a/virtual/mta/mta-1.ebuild b/virtual/mta/mta-1.ebuild index 5cf3a66..992b407 100644 --- a/virtual/mta/mta-1.ebuild +++ b/virtual/mta/mta-1.ebuild @@ -2,31 +2,24 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/virtual/mta/mta-1.ebuild,v 1.4 2013/03/17 23:43:28 zx2c4 Exp $ -EAPI=4 +EAPI=8 DESCRIPTION="Virtual for Message Transfer Agents" -HOMEPAGE="" -SRC_URI="" - -LICENSE="" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="" - -DEPEND="" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" # mail-mta/citadel is from sunrise -RDEPEND="|| ( mail-mta/nullmailer - mail-mta/msmtp[mta] - mail-mta/ssmtp[mta] - mail-mta/courier - mail-mta/esmtp - mail-mta/exim - mail-mta/mini-qmail - mail-mta/netqmail - mail-mta/postfix - mail-mta/qmail-ldap - mail-mta/sendmail - mail-mta/opensmtpd - mail-mta/citadel[-postfix] - mail-mta/bongo )" +RDEPEND="|| ( + mail-mta/nullmailer + mail-mta/msmtp[mta] + mail-mta/ssmtp[mta] + mail-mta/courier + mail-mta/esmtp + mail-mta/exim + mail-mta/netqmail + mail-mta/notqmail + mail-mta/postfix + mail-mta/sendmail + mail-mta/opensmtpd[mta] + mail-mta/bongo +)"